如何解析推入单个数组的javascript对象,而不是将所有javascript对象推入单个数组?

如何解析推入单个数组的javascript对象,而不是将所有javascript对象推入单个数组?,javascript,arrays,Javascript,Arrays,我有如下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;

我有如下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} ]

我已经研究过与我相关的问题的解决方案,但我最多只能得到相同的结果。我需要包括或删除什么?或者最好的方法是什么?谢谢。

这是因为在每次迭代中都定义了
数据。把它搬出去,它就会起作用

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)
    
}
函数就绪(){
var items=document.querySelectorAll('.item')
var数据=[];
对于(变量i=0;i
这是因为您在每次迭代时都定义了一个新的
数据
数组,将
var data=[]
移出循环。您的输入在我的结果中有了很大的改进,
对象
在每次迭代中单独添加,也就是说,我的结果有7个数组,每个数组都有一个比前一个数组多的对象:
[{title:“Jack Daniels 1L”,成本:60}](1)[{title:“Jack Daniels 1L”,成本:60},{title:“Southern Comfort 2L”,成本:130}](2)[日志][{title:“Jack Daniels 1L”,成本:60},{title:“Southern Comfort 2L”,成本:130},(3)…
是否可以将我需要的最后一个数组作为目标?是的,要将数组中的最后一个项目作为目标,您可以执行
var item=data[data.length-1]
如果这有助于您解决问题,请将其标记为已接受。这似乎有点误解…我得到了8个不同的数组作为我的结果,在8个数组中,第一个数组只有一个对象,第二个数组有两个对象,随着每个后续数组的增加,这将继续增加一个,直到第八个数组拥有所有对象。我的关注点是:rn是我得到了8个不同的数组,而不是一个拥有我想要的一切的数组。在这八个数组中,只有第八个数组拥有我想要的所有对象。我如何确保它是唯一一个作为结果输出的数组?
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)
    
}