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