2015-01-15 172 views
-3

我们有一个空对象:填充JavaScript对象

var obj = {};

我想使一个for循环,其随每次迭代增加了一个新的obj = {值:ⅰ,下一个:ⅰ+ 1}

+0

数组你的意思是增加了一个新的OBJ? – Christos

+0

'Object.keys(obj).forEach(function(){})' – Pinal

+1

你想得到什么结果?像[[value:1,next:2},{value:2,next:3}]]这样的对象数组? – andrusieczko

回答

0

只需使用对象的阵列和用于每次迭代推此值上它:

var obj=[]; 
for(var i=1;i<10;i++){ 
    obj.push({value: i, next: i+1}); 
} 

这是a DEMO Fiddle

对于每次迭代给obj.valueobj.next,看看JavaScript Object Properties的更多信息。

+0

我不工作,因为它会用新值覆盖obj.value和obj.next。 – Zyg

+0

是的,当然不会,对不起,但是您必须使用对象数组,因为对于同一个属性,对象不能包含不同的值。看看我的编辑。 –

+0

首先,你的回答是不正确的 - 你忘记了'obj.push(newobj)'到数组。其次,不需要创建变量:'array.push({value:i,next:i + 1});' –

0

不就是知道你的意思,但是你看这个

var obj = []; 
function Obj(i){ 
    this.value = i; 
    this.next = i+1; 
} 

for (var i= 0;i<10;i++){ 
    obj.push(new Obj(i)); 
} 

而不是对象的对象他们

+0

你有一个拼写错误 - obj.push = new Obj(i)覆盖了数组的方法,而不是调用它 –

+0

呐喊现在修复它 – znap026