我正在尝试使用以下代码从数组中删除所有偶数项目:
var myArray = [1,2,3,4,5,6];
myArray.forEach(function(item) {
if (item%2 == 0) {
myArray.splice(item);
}
});
我认为错误的地方在于拼接?
答案 0 :(得分:4)
var myarray = [1,2,3,4,5,6]
filtered = myarray.filter(function(el, index) {
return index % 2 === 1;
});
输出:[2,4,6]
答案 1 :(得分:3)
你应该这样做:
var myArray = [1,2,3,4,5,6];
myArray.forEach(function(item, x) {
if (item%2 == 0)
myArray.splice(x, 1); // Remove 1 item from index x
});
或者更好的方式来使用.filter
(IE8 +)
var myArray = myArray.filter(function(item) {
return item % 2 ==0 ? false : true; // Return false if item is even and true other way round.
});
答案 2 :(得分:2)
是的,拼接由索引
完成var myArray = [1,2,3,4,5,6];
myArray.forEach(function(item) {
if (item%2 == 0) {
var index = myArray.indexOf(item);
myArray = myArray.splice(index,1);
}
});
答案 3 :(得分:2)
filter()
会更好
var arr = myArray.filter(function(item) {
return item % 2 ==0 ? true : false;
});