Страницы

Поиск по вопросам

четверг, 9 января 2020 г.

Если все свойства и их значения у объектов одинаковы, то одинаковы ли объекты?

#javascript #объекты


Извините за наверное глупый вопрос. Не буду вставлять весь код. Вопрос небольшой
по фрагменту этому, а то я немного засомневался. greed это массив с объектами и некоторые
из них могут быть с абсолютно одинаковыми свойствами и их значениями. При этом условии
все ли они попадут в acted? Будет ли интерпретатор воспринимать их как разные объекты?

World.prototype.turn = function() {
  var acted = [];
  this.grid.forEach(function(critter, vector) {
    if (critter.act && acted.indexOf(critter) == -1) {
      acted.push(critter);
      this.letAct(critter, vector);
    }
  }, this);
};

    


Ответы

Ответ 1



Конечно это будут разные объекты. var src = [ {d: 5}, {d: 5}, {d: 5} ] var dst = []; for (i = 0; i < src.length; i++) { if (dst.indexOf(src[i]) == -1) dst.push(src[i]); }; console.log(dst); При сравнении объектов сравниваются их "указатели". Если нужно сравнивать свойства, то нужно писать свой компаратор

Комментариев нет:

Отправить комментарий