Javascript push_array и in_array - PullRequest
       14

Javascript push_array и in_array

2 голосов
/ 16 марта 2011

Что такое эквиваленты php функций push_array и in_array в javascript?

Массивы простые (не многомерные).

Не нашел что-то родное.

Ответы [ 3 ]

4 голосов
/ 16 марта 2011

Вы ищете push метод и indexOf метод .

Обратите внимание, что 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)

2 голосов
/ 16 марта 2011

push_array:

Это собственный объект Array в JavaScript:

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;
}
1 голос
/ 16 марта 2011

Вы должны использовать объект JavaScript Array. Тогда вы можете использовать .push ().

Для поиска: Как проверить, содержит ли массив объект в JavaScript?

...