Показать сообщение отдельно
  #2 (permalink)  
Старый 04.12.2013, 00:15
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от grego
Ожидается, что на выходе получается массив из объектов,
А в итоге у тебя получается массив из 10 ссылок на один и тот же объект.
У тебя ведь объект relation один? Один!
Создавай на каждой итерации новый объект. Например так:


var i = 0,
        length = 10,
        relations = [];
 
        for(; i< length; i++) {
            relations.push({
                startPoint: {
                    x:i,
                    y:i
                },
                endPoint: {
                    x:i,
                    y:i
                }
            });
        }
 
        console.log(relations);



Или напиши функцию clone() (или copy()), которая будет создавать копию объекта.

Можешь еще так сделать (в традиционном стиле для ооп):

function Relation(startX, startY, endX, endY) {
    this.startPoint = {
        x: startX,
        y: startY
    };
    this.endPoint = {
        x: endX,
        y: endY
    };
}

var i = 0,
    length = 10,
    relations = [];

for(; i< length; i++) {
    relations.push(new Relation(i, i, i, i));
}

console.log(relations);
__________________
В личку только с интересными предложениями
Ответить с цитированием