У меня есть эти два массива:функция Javascript IndexOf возвращает неверные результаты
array1 = ["a,1", "b,2", "c3", "d4", "e5", "f6"];
array2 = [1, 2, 3, 4];
И я пытаюсь выяснить, если элемент первого массива во втором.
for (i = 0; i < array1.length; i++) {
if(array2.indexOf(array1[i][1]) != -1) {
console.log('In array: '+array1[i][1]);
} else {
console.log('NOT in array: '+array1[i][1]);
}
В этом случае, я всегда получаю сообщение НЕ в массиве ...
Но если я изменить код таким образом:
for (i = 0; i < array1.length; i++) {
if(array2.indexOf(1) != -1) {
console.log('In array: '+array1[i][1]);
} else {
console.log('NOT in array: '+array1[i][1]);
}
Выход на В массиве: ....
С номером в качестве параметра функции indexOf() он работает, но нет с переменной ... как это возможно?
Спасибо
'array1 [i] [1]' is '", "' или 'undefined', в зависимости от браузера. – SLaks
Вы сравниваете строку с числом, поэтому они никогда не будут совпадать. Ваш '+' исправляет эту проблему. Я предполагаю, что индекс '[1]' ошибочно принят в вашем рабочем примере. –
'' 3 "' это не то же самое, что '3', а' ',' 'определенно не то же самое, что' 1'. – JLRishe