Javascript 如何从数组中删除元素。这不管用

Javascript 如何从数组中删除元素。这不管用,javascript,jquery,Javascript,Jquery,我声明一个数组,如下所示: 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

我声明一个数组,如下所示:

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

有人知道为什么或者如何正确地做吗?

这个怎么样

var array = [1, 2, 3, 4, 5]
var removeItem = 3;

obj = jQuery.grep(obj, function(value) {
    return value != removeItem;
});
结果:

[1, 2, 4, 5]

你的例子绝对没有错

这工作正常,并给出输出:[1,3,9]。在这里为您自己测试:

您将在控制台中看到这一点:

  • [1,4,3,9]
  • [1,3,9]

如果您有一个唯一的数组,并且希望删除唯一出现的值,那么就不需要jquery或循环,只需使用好的旧javascript和

如果您的数组不是唯一的,并且希望删除每一个出现的值,那么仍然不需要jquery,您可以使用

如果没有jquery解决所有问题,您就无法生存:
使用

使用

还有


否则,您的代码似乎没有任何问题。

它应该工作得很好。我看没问题。您是在尝试删除所有“4”元素,还是仅删除该值的第一次或最后一次出现?
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);
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);
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);
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);