var people = ['alex','jason','matt'];
people.forEach(function(p){
if(p.length > 4){
//REMOVE THIS PERSON or pop it out of the list or whatever
}
});
console.log(people) //should return ['alex','matt']
我想使用这个 forEach 循环从列表中删除一个元素。
使用正确的工具完成正确的工作。在这种情况下:
for (var i = 0; i < data.length; i++) {
if (data[i].value === 5) {
data.splice(i--, 1);
}
}
或者按照 @nnnnnn 的建议,向后循环:
for (var i = data.length-1; i >= 0; i--) {
if (data[i].value === 5) {
data.splice(i, 1);
}
}
但是,您应该考虑使用Array.prototype.filter() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter:
data = data.filter(function (e) {
return e.value !== 5;
});
或实用函数库,例如lodash https://lodash.com/docs#remove or 下划线 http://underscorejs.org/,它提供了从数组中删除元素的函数:
_.remove(data, function (e) {
return e.value === 5;
});
后两者的好处是你的代码变得更具可读性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)