Проблема при поиске повторяющегося значения в JavaScript - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть один массив, и я хочу проверить, массив содержит повторяющийся элемент или нет.

Я пытаюсь ниже код. Этот код дает «CustomNumber» неопределенной ошибки, на последнем этапе.

Пожалуйста, помогите.

 for(var i = 0; i <= myArray.length; i++) 
 {
    for(var j = i; j <= myArray.length; j++) 
    {
        if(i != j && myArray[i].CustomNumber == myArray[j].CustomNumber) 
        {
            return true;
        }
    }
}

Ошибка : Uncaught TypeError: Невозможно прочитать свойство 'CustomNumber' из неопределенного

1 Ответ

0 голосов
/ 05 апреля 2019

Проблема в том, что j и i будут выходить за границы массива.

Индексы массива варьируются от 0 до длины - 1. Итак, в вашем цикле for(var j = i; j <= myArray.length; j++) Последняя итерация не удастся, так как вы будете пытаться ссылаться за пределы массива. Аналогично с for(var i = 0; i <= myArray.length; i++).

Вы должны проверить, что i (или j) меньше длины массива:

for(var i = 0; i < myArray.length; i++) 
{
   for(var j = i; j < myArray.length; j++) 
   {
       if(i != j && myArray[i].CustomNumber == myArray[j].CustomNumber) 
       {
           return true;
       }
   }
}
...