Как я могу сделать массив true или false?

#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"])