#arrays #if-statement #arraylist #boolean #app-lab
#массивы #if-оператор #список массивов #логическое значение #приложение-лаборатория
Вопрос:
На Code.org , Я пытаюсь создать тест, который выбирает ответ на основе того, что пользователь поместил в массив. Однако, независимо от того, что находится в массиве, он всегда выдает false.
Я попытался изменить оператор, чтобы он имел более одного знака равенства, я попытался выполнить это в обратном направлении и выполнить оператор if if list !== [list]
, и я попытался удалить кавычки. Ничего не сработало. Я также попытался определить correctlist
переменную внутри оператора if, но это все равно приводит к false .
var mylist = ["a". "b", "c"];
var correctlist;
if (mylist == ["a", "b", "c"]) {
correctlist = true;
} else {
correctlist = false;
}
console.log(correctlist);
Он всегда выдает значение false.
Я ожидал, что в журнале консоли будет указано значение true, но оно всегда говорит false.
Комментарии:
1. В строке 1 должна ли быть запятая после «а» вместо точки?
Ответ №1:
Вы заметите, что: ["a", "b", "c"] == ["a", "b", "c"]
всегда возвращает false .
Это потому, что это два разных массива. Просто потому, что строка элементов совпадает, массивы не совпадают.
Вам нужно будет либо перебирать элементы, чтобы сравнить каждый, преобразовать их во что-то, что можно сравнить с помощью простого равенства, либо использовать библиотеку с «глубоким» равенством.
JSON.stringify(["a", "b", "c"]) == JSON.stringify(["a", "b", "c"])