Страницы

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

пятница, 15 февраля 2019 г.

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

Извините за наверное глупый вопрос. Не буду вставлять весь код. Вопрос небольшой по фрагменту этому, а то я немного засомневался. 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); };


Ответ

Конечно это будут разные объекты.
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);
При сравнении объектов сравниваются их "указатели". Если нужно сравнивать свойства, то нужно писать свой компаратор

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

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