带有对象的循环数组的javascript-奇怪的结果

带有对象的循环数组的javascript-奇怪的结果,javascript,Javascript,我有一个数组,叫它foo。数组的每个元素都包含一个对象 例如: var foo = new Array(); var test = new Object(); test.name = "Item name1"; test.price = 20.00; foo.push(test); var test = new Object(); test.name = "Item name2"; test.price = 10.00; foo.push(test); 我现在应该: foo[0] =&

我有一个数组,叫它foo。数组的每个元素都包含一个对象

例如:

var foo = new Array();

var test = new Object();
test.name = "Item name1";
test.price = 20.00;

foo.push(test);

var test = new Object();
test.name = "Item name2";
test.price = 10.00;

foo.push(test);
我现在应该:

foo[0] => object{name: Item name1, price: 20.00}
foo[1] => object{name: Item name2, price: 10.00}
问题是:

console.log(foo.length); // 2

for(var x = 0; x < foo.length; x++) { 
     console.log(foo[x]); // foo[x] is undefined 2X
}

看起来效果不错:


您确定这就是问题所在吗?

您必须有一些其他代码干扰您的代码。我测试了它,但没有得到相同的结果:

控制台:

2
Object { name="Item name1", price=20 }
Object { name="Item name2", price=10 }

对我来说似乎工作得很好:在这个例子中没有jQuery,jQuery标记有误导性,我看不出这里有任何问题。你确定那里有完全相同的代码吗?我只是在控制台中运行了你的代码,没有问题。还有别的事。这些语句之间还有其他代码吗?@习惯是什么?认为JS和jQuery是同一件事?我会马上去康复中心尽快戒掉这个习惯。开玩笑的是,在发布问题之前,您应该创建一个JSFIDLE。总是减少你的问题,不要以为你知道问题是什么。我想我现在已经解决了。我改变了://将新的pkg添加到数组pkgs[pkgnum]=newobject();to://addnewpkg到数组var newpkg=newobject();包装推送(新包装);我也改变了主意
2
Object { name="Item name1", price=20 }
Object { name="Item name2", price=10 }