使用 foreach 从数组中删除项目 - JavaScript
Remove item from array using foreach - JavaScript
是否可以使用 foreach 从数组中删除某些内容?
var array = [1,2,3,4,5,6,7,8];
array.forEach(function(data){
if (data == 4) {
// do something here
}
});
console.log(array);
这样试试:
array.forEach(function(data){
if (data == 4){
console.log('done')
array.splice(data, 1);
}
});
另外,正如 mario 所评论的,不建议修改您正在循环的数组,因此您可以这样做:
var array1 = [];
array.forEach(function(data){
if(array.length === 4){
array1.push(data);
}
});
您也可以像这样使用 for 循环:
var array = [1,2,3,4,5,6,7,8],i;
for (i = 0; i < array.length; ++i) {
if (array[i] === 4) {
array.splice(i--, 1);
}
}
console.log(array);
我不推荐这个。 forEach 函数遍历数组,当您删除当前或上一个项目时,它将跳过数组中的下一个项目。话虽这么说,如果你真的想删除一个项目,尽管你会 运行 进入它可以删除一个带有 array.splice(data, 1)
.
的项目
我建议不要使用 forEach 函数。它会影响迭代器并跳过下一项。更好:使用反向 for 循环并按索引删除项目。
var array = [1,2,3,4,5,6,7,8];
for (var i = array.length - 1; i > -1; i--) {
if (array[i] == 4) {
array.splice(i, 1);
}
}
Fiddle: https://jsfiddle.net/uu94y8Lx/
是否可以使用 foreach 从数组中删除某些内容?
var array = [1,2,3,4,5,6,7,8];
array.forEach(function(data){
if (data == 4) {
// do something here
}
});
console.log(array);
这样试试:
array.forEach(function(data){
if (data == 4){
console.log('done')
array.splice(data, 1);
}
});
另外,正如 mario 所评论的,不建议修改您正在循环的数组,因此您可以这样做:
var array1 = [];
array.forEach(function(data){
if(array.length === 4){
array1.push(data);
}
});
您也可以像这样使用 for 循环:
var array = [1,2,3,4,5,6,7,8],i;
for (i = 0; i < array.length; ++i) {
if (array[i] === 4) {
array.splice(i--, 1);
}
}
console.log(array);
我不推荐这个。 forEach 函数遍历数组,当您删除当前或上一个项目时,它将跳过数组中的下一个项目。话虽这么说,如果你真的想删除一个项目,尽管你会 运行 进入它可以删除一个带有 array.splice(data, 1)
.
我建议不要使用 forEach 函数。它会影响迭代器并跳过下一项。更好:使用反向 for 循环并按索引删除项目。
var array = [1,2,3,4,5,6,7,8];
for (var i = array.length - 1; i > -1; i--) {
if (array[i] == 4) {
array.splice(i, 1);
}
}
Fiddle: https://jsfiddle.net/uu94y8Lx/