js数组方法splice删除不彻底
作者:互联网
根据条件去除数组中数据
let arr = [ { id: 1, sex: "1" }, { id: 2, sex: "2" }, { id: 3, sex: "1" }, { id: 4, sex: "1" }, { id: 5, sex: "2" }, { id: 6, sex: "1" }, { id: 7, sex: "2" }, ]; for (let i = 0; i < arr.length; i++) { if (arr[i].sex === "1") arr.splice(i, 1); } console.log(arr);//结果[{ id: 2, sex: '2' },{ id: 4, sex: '1' },{ id: 5, sex: '2' }, {id: 7, sex: '2' }]
结果是有的1还在,原因是splice会改变数组结构,所以删除不能从0开始
let arr = [ { id: 1, sex: "1" }, { id: 2, sex: "2" }, { id: 3, sex: "1" }, { id: 4, sex: "1" }, { id: 5, sex: "2" }, { id: 6, sex: "1" }, { id: 7, sex: "2" }, ]; for (let i = arr.length - 1; i >= 0; i--) { if (arr[i].sex === "1") arr.splice(i, 1); } console.log(arr);//[ { id: 2, sex: '2' }, { id: 5, sex: '2' }, { id: 7, sex: '2' } ]
标签:arr,splice,sex,let,数组,js,id 来源: https://www.cnblogs.com/lijun12138/p/16285914.html