2014-11-12 4 views
2

Я новый в экстремально JavaScript, поэтому запаситесь терпением. :) У меня есть следующий объектСоздание объектов JavaScript и затем заполнить массив через цикл

var obj= { 
    x: 0, 
    y: 0 
}; 

Я хочу создать функцию, которая будет возьмите x, y из пользователя и сохраните их в массиве. Поэтому essensialy я хочу, чтобы массив хранил объекты «obj».

var arr = []; var i;

для (i = 0; i < 10; i ++) { arr [i] = новый obj (x, y); }

Я даже не уверен, что я начал правильно. Итак, как я могу заполнить свой массив такими объектами?

arr = [obj1, obj2, obj3, obj4];

Спасибо ..

ответ

1

Его правильно ожидать, если и хотят, чтобы использовать новый оператор использовать функцию.

var obj = function(a,b) { 
this.x = a; 
this.y = b; 
this.Sum = function(){ 
    return this.x + this.y; 
}; 
}; 

var arr = [],sumarr=[]; var i; 

for(i=0; i<10; i++) 
{ 
arr[i] = new obj(i,i+1); 
sumarr[i] = arr[i].Sum(); 
} 

Для лучшего понимания концепции я рекомендую [http://zeekat.nl/articles/constructors-considered-mildly-confusing.html].

+0

Итак, как будет выглядеть последний код? Смогу ли я добавить a + b и передать результат во второй массив для каждого объекта? – MavrosGatos

+0

вы хотите создать другой массив для суммы См. Мой обновленный ответ – Krishjs

+0

большое спасибо .. – MavrosGatos

1
// create a constructor for our Obj 
function Obj(x, y) { 
    this.x = x; 
    this.y = y; 
} 

/* fills array with those objects */ 

// create an array 
var objs = []; 

// fill the array with our Objs 
for (var i = 0; i < 10; i++) { 
    objs.push(new Obj(i, i)); 
} 

// and show the result 
var msg = ""; 
for (var i = 0; i < objs.length; i++) { 
    msg += objs[i].x + ":" + objs[i].y + '\n'; 
} 

/* now */ 
alert(msg); 

http://cssdeck.com/labs/elm2uj00

Если вы очень новое в JavaScript, я бы посоветовал вам прочитать хорошую книгу о JavaScript. Например, David Flanagan's: JavaScript Полное руководство Есть много ответов на вопросы, которые у вас есть сейчас и будут. Это лучший способ, который я могу предложить. Stackoverlow не даст вам большой помощи на вашем текущем этапе. Это мое мнение

+0

Я последую за советом. Большое спасибо.. – MavrosGatos