如何通过项目名称从数组中删除项目?

时间:2010-02-07 15:13:55

标签: javascript

就像我有一个数组数组('一个','三个','两个'); ,并且,比方说,我想要删除项目三,我该怎么做? / p>

2 个答案:

答案 0 :(得分:2)

var a = ['one', 'three', 'two'];
a.splice(a.indexOf('three'), 1);
alert(a);

对于不支持indexOf的浏览器,有一种解决方法 https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Objects/Array/IndexOf#Compatibility

答案 1 :(得分:1)

function RemoveArrayValue(arr, val)
{
   var result = [], //empty array
   j = 0, i, len = arr.length;

   for(i = 0; i < len; ++i)
      if(arr[i] != val)
         result[j++] = val;

   return result;
}

顺便说一句:

indexOf方法不是IE下的Javascript Array对象的一部分(也不是IE8的一部分),而是String对象的一部分。如果希望indexOf方法成为JS Array对象的一部分,则必须在代码中声明:

if (!Array.prototype.indexOf)
{
    Array.prototype.indexOf = function(val)
    {
       for(var i = 0, len = this.length; i < len; ++i)
          if(this[i] === val)
             return i;

       return -1;
    }
}