2011-03-15 41 views

回答

4

您正在寻找push methodindexOf method

注意indexOf不支持IE,所以你需要自己实现它,像这样:

if (!Array.prototype.indexOf) 
{ 
    Array.prototype.indexOf = function(searchElement /*, fromIndex */) 
    { 
    "use strict"; 

    if (this === void 0 || this === null) 
     throw new TypeError(); 

    var t = Object(this); 
    var len = t.length >>> 0; 
    if (len === 0) 
     return -1; 

    var n = 0; 
    if (arguments.length > 0) 
    { 
     n = Number(arguments[1]); 
     if (n !== n) // shortcut for verifying if it's NaN 
     n = 0; 
     else if (n !== 0 && n !== (1/0) && n !== -(1/0)) 
     n = (n > 0 || -1) * Math.floor(Math.abs(n)); 
    } 

    if (n >= len) 
     return -1; 

    var k = n >= 0 
      ? n 
      : Math.max(len - Math.abs(n), 0); 

    for (; k < len; k++) 
    { 
     if (k in t && t[k] === searchElement) 
     return k; 
    } 
    return -1; 
    }; 
} 

(MDC从复制)

+0

不错,那么in_array呢? – James 2011-03-15 23:07:30

+0

@Roon:使用'indexOf'。 – SLaks 2011-03-15 23:08:49

2

push_array

这是原产于JavaScript中的Array对象:

var someArray = []; 
someArray.push(value); 

in_array

这不是原产于数组中然而JavaScript的一些浏览器有Array.indexOf支持,可以比作-1。如果不支持比你需要遍历的项目。

function inArray(elem, array) { 
    if (array.indexOf) { 
     return array.indexOf(elem) > -1; 
    } 

    for (var i = 0, length = array.length; i < length; i++) { 
     if (array[ i ] === elem) { 
      return true; 
     } 
    } 

    return false; 
}