我声明了一个这样的数组:
var myArray= [];
然后我添加数字元素
myArray.push(myNumber);
所以当我调用myArray.toString();
时,数组看起来像这样1,4,3,9
我正在尝试删除像这样的某些元素
for(var i = myArray.length; i >= 0; i--) {
if(myArray[i] === theNumberIwantToRemove) { //theNumberIwantToRemove ==4
myArray.splice(i, 1);
}
}
但它不起作用。输出仍然相同
1,4,3,9
任何人都知道为什么或如何正确地做到这一点?
答案 0 :(得分:3)
你的例子绝对没有错。
这很好用,并给出输出:[1,3,9]。在这里测试一下:Demo
var myArray= [];
myArray.push(1,4,3,9);
console.log(myArray);
for(var i = myArray.length; i >= 0; i--) {
if(myArray[i] === 4) { //theNumberIwantToRemove ==4
myArray.splice(i, 1);
}
}
console.log(myArray);
您将在控制台中看到此内容:
答案 1 :(得分:1)
如果您有一个唯一的数组,并且想要删除唯一的值,那么就不需要jquery或循环,只需使用旧的javascript Array.indexOf和Array.splice
var array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
theNumberIwantToRemove = 5,
position = array.indexOf(theNumberIwantToRemove);
if (position !== -1) {
array.splice(position, 1);
}
alert(array);
上
如果您的数组不是唯一的并且您想删除每次出现的值,那么仍然不需要jquery,您可以使用Array.filter
var array = [0, 1, 5, 2, 3, 4, 5, 6, 7, 5, 8, 9],
theNumberIwantToRemove = 5,
position = array.indexOf(theNumberIwantToRemove),
result = array.filter(function (element) {
return element !== theNumberIwantToRemove;
});
alert(result);
上
如果你不顾每个问题使用jquery就绝对不能活下去:
使用jQuery.inArray
var array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
theNumberIwantToRemove = 5
position = $.inArray(theNumberIwantToRemove, array);
if (position !== -1) {
array.splice(position, 1);
}
alert(array);
var array = [0, 1, 5, 2, 3, 4, 5, 6, 7, 5, 8, 9],
theNumberIwantToRemove = 5,
position = array.indexOf(theNumberIwantToRemove),
result = $(array).filter(function (index, element) {
return element !== theNumberIwantToRemove;
}).toArray();
alert(result);
上
var array = [0, 1, 5, 2, 3, 4, 5, 6, 7, 5, 8, 9],
theNumberIwantToRemove = 5,
position = array.indexOf(theNumberIwantToRemove),
result = $.grep(array, function (element) {
return element !== theNumberIwantToRemove;
});
alert(result);
上
否则您的代码似乎没有任何问题。
答案 2 :(得分:0)
这个怎么样?
var array = [1, 2, 3, 4, 5]
var removeItem = 3;
obj = jQuery.grep(obj, function(value) {
return value != removeItem;
});
结果:
[1, 2, 4, 5]
http://snipplr.com/view/14381/remove-item-from-array-with-jquery/