Создание функции, которая проверяет, содержит ли массив что-то - PullRequest
0 голосов
/ 19 июня 2011
openList = Array([1,1], [2,3], [4,5]);
containss = function (input, arrayData, tellID) {
    for (i = 0; i < arrayData.length; i++) {
        if (arrayData[i] == input) {
            if (tellID) {
                return i;
            } else {
                return true;
            }
        }
    }
    return false;
}
trace(containss([2,3], openList, true));

Этот код возвращает false, когда openList содержит 2,3.Когда я добавляю трассировку (arrayData [i]), я получаю 1,1 2,3 4,5, а когда я делаю трассировку (ввод), я получаю 2,3.Что случилось?Спасибо

1 Ответ

0 голосов
/ 19 июня 2011

Вы сравниваете 2 массива, используя оператор равенства:

arrayData[i]==input

Это всегда будет ложным, независимо от содержимого массивов.Оператор равенства в вашем случае проверяет, является ли arraydata[i] одним и тем же объектом с input, если 2 разных объекта (массива) имеют одинаковое содержимое.

...