Сравнение строк в массивах JS
Вопрос такой, следующий скрипт:
str1 = "test";
str2 = "test";
console.log(str1==str2); //true
Работает верно. Но если я пытаюсь сравнить строки из массивов, то они никак не хотят сравниваться, как бы я их не преобразовывал в строку:
fAfter[0]['Name'] = String("test");
fBefore[1]['Name'] = String("test");
console.log(fAfter[0]['Name']); //test
console.log(fBefore[1]['Name']); //test
console.log(typeof (fAfter[0]['Name'])) //string
console.log(typeof (fBefore[1]['Name'])) //string
console.log(fAfter[1]['Name'].toString() === fBefore[0]['Name'].toString()); //false
В чем тут подвох?
Ответы (1 шт):
Автор решения: SwaD
→ Ссылка
Смотри, ты добавляешь 0 и 1 элемент в массивы соответственно
fAfter[0]['Name'] = String("test");
fBefore[1]['Name'] = String("test");
И проверяешь их так же
console.log(fAfter[0]['Name']); //test
console.log(fBefore[1]['Name']); //test
console.log(typeof (fAfter[0]['Name'])) //string
console.log(typeof (fBefore[1]['Name'])) //string
А тут почему то сверяешь 1 и 0
console.log(fAfter[1]['Name'].toString() === fBefore[0]['Name'].toString()); //false
Поменяй местами индексы в массиве
console.log(fAfter[0]['Name'].toString() === fBefore[1]['Name'].toString()); //true