Проверка того, равны ли два массива - PullRequest
0 голосов
/ 23 сентября 2018

Я пытаюсь определить, равны ли первые части двух массивов.Регистратор показывает их как идентичные, но он все еще возвращает ЛОЖЬ.Разве нельзя сравнивать массивы таким образом?

function equality() {
var one = [['Name, Class'],['One', 'Two']];
var two = ['Name, Class'];
Logger.log(one[0]);
Logger.log(two);
 if (one[0]===two) {
  Logger.log('TRUE') 
 }
 else {
 Logger.log('FALSE'); 
 }
}

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Вы должны использовать оператор ==, чтобы равняться в этом случае, и массив должен указать, какой объект

использует код, как показано ниже

function myFunction() {
    var one = [['Name, Class'],['One', 'Two']];
    var two = ['Name, Class'];
    Logger.log(one[0]);
    Logger.log(two);
    if (one[0]==two[0]) {
        Logger.log('TRUE') 
    }
    else {
        Logger.log('FALSE'); 
    }
}
0 голосов
/ 23 сентября 2018

Вы не можете просто использовать оператор равенства для сравнения двух массивов JavaScript, поскольку они являются объектами.Они могут использоваться для нулевых и неопределенных проверок, но при проверке их друг на друга они потерпят неудачу.

Один из методов, который я чаще всего использую, заключается в их строковом преобразовании с использованием JSON.stringify (obj).

Вв вашем случае это будет примерно так: -

if(JSON.stringify(one[0]) == JSON.stringify(two))

Это даст вам результат, на который вы надеетесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...