Сравнение строк в массивах 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
→ Ссылка