javascript删除数组,索引出现问题解决办法。
var data = [ { isRemove: 0, name: "项目1" }, { isRemove: 1, name: "项目2" }, { isRemove: 1, name: "项目3" }, { isRemove: 0, name: "项目4" }, { isRemove: 0, name: "项目5" }, { isRemove: 0, name: "项目6" }, { isRemove: 1, name: "项目7" }, { isRemove: 1, name: "项目8" } ];
需求是我们要删除isRemove=1的项目。
有两种解决方案:
1、把有效的元素push进新数组 。
var newArray=[]; for (var i = 0; i < data.length; i++) { if(data[i].isRemove==0){ newArray.push(data[i]); } } console.log(newArray);
2、用逆向循环。
for (var i = data.length - 1; i >= 0; i--) { if (data[i].isRemove==1) { data.splice(i, 1); } }
再推荐一个高效的写法:
var i = data.length; while (i--) { if (data[i].isRemove==1) { data.splice(i, 1); } }
如果这篇文章对您有帮助,您可以打赏我
技术交流QQ群:15129679