其他分享
首页 > 其他分享> > js数组方法splice删除不彻底

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