[英]How to resolve javascript objects pushed in to individual arrays instead of all of them being pushed into a single array?
我有一个 javascript 代码如下:
function ready() {
var items = document.querySelectorAll('.item')
for (var i = 0; i < items.length; i++) {
var current = items[i];
var name = current.getElementsByClassName('item-title')[0].innerText;
var price = parseInt(current.getElementsByClassName('item-price')[0].innerText);
var data = [];
var products = {};
products.title = name;
products.cost = price;
data.push(products);
//console.log(products)
console.log(data)
}
}
在运行代码时,我得到的结果如下:
[{title: "Jack Daniels 1L", cost: 60}]
[{title: "Southern Comfort 2L", cost: 130}]
[{title: "Golden Label 1L", cost: 120}]
[{title: "Grey Goose 1L", cost: 31}]
[{title: "Remy Martins 750ml", cost: 45}]
[{title: "Hennessy 1L", cost: 68}]
[{title: "Johnnie Walker 1L", cost: 50]
[{title: "Double Black 750ml", cost: 55}]
然而我正在寻找一个看起来像这样的结果:
[ {title: "Jack Daniels 1L", cost: 60},
{title: "Southern Comfort 2L", cost: 130},
{title: "Golden Label 1L", cost: 120},
{title: "Grey Goose 1L", cost: 31},
{title: "Remy Martins 750ml", cost: 45},
{title: "Hennessy 1L", cost: 68},
{title: "Johnnie Walker 1L", cost: 50},
{title: "Double Black 750ml", cost: 55} ]
我已经查看了与我相关的问题的解决方案,但我最多只能得到相同的结果。 我需要包含或删除什么? 或者go 最好的方法是什么? 谢谢你。
所以这是由于在每次迭代中都定义了data
。 把它移出来,它会工作
function ready() {
var items = document.querySelectorAll('.item')
var data = [];
for (var i = 0; i < items.length; i++) {
var current = items[i];
var name = current.getElementsByClassName('item-title')[0].innerText;
var price = parseInt(current.getElementsByClassName('item-price')[0].innerText);
var products = {};
products.title = name;
products.cost = price;
data.push(products);
//console.log(products)
}
console.log(data)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.