Javascript 是否可以将目标/跳转到特定的迭代/循环并将其输出?

Javascript 是否可以将目标/跳转到特定的迭代/循环并将其输出?,javascript,arrays,Javascript,Arrays,下面是我的javascript代码: 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].innerTex

下面是我的javascript代码:

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(data)
 }
在每次迭代中,一个以上的对象被添加到后续数组中,这意味着只有最后一个数组具有所需的所有内容。是否可以将在第八个循环中产生的特定数组作为目标,并将其单独记录为结果?i、 e此特定阵列:

[{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}] (8)

您可以使用
if
语句选择应添加的迭代:

for (var i = 0; i < items.length; i++) {
    if (i === 7)
    {
        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(data)
    }
 }
for(变量i=0;i

如果指定的条件不满足,if语句将执行一条语句 真的。如果条件为falsy,则可以执行另一条语句


您可以使用
if
语句选择应添加的迭代:

for (var i = 0; i < items.length; i++) {
    if (i === 7)
    {
        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(data)
    }
 }
for(变量i=0;i

如果指定的条件不满足,if语句将执行一条语句 真的。如果条件为falsy,则可以执行另一条语句


如果将console.log()移动到for循环的正下方,您会看到只有一个数组包含所有推送的值。根本不需要更改数组行为。

如果将console.log()移动到for循环的正下方,您会看到只有一个数组包含所有推送的值。根本不需要更改阵列行为。

尝试以下操作:

函数就绪(){
var items=document.querySelectorAll('.item');
var数据=[];
对于(var i=0;i
试着这样做:

函数就绪(){
var items=document.querySelectorAll('.item');
var数据=[];
对于(var i=0;i
请缩进您的代码。我不理解“是否可以针对特定阵列”的问题?您的代码中只有一个循环,它以0开头,如果这是您要问的,您可以在第8个元素处以var i=7开头。我不确定您的问题是什么。您是在N个元素之后还是在整个循环完成之后尝试登录?如果是后者,则将log语句置于循环之外。如果是前者,你知道每次N是什么吗?如果是,只需检查(i==N)。如果没有,您如何知道您想要的?只需将
console.log()
移动到for循环的外部,请缩进您的代码。我不理解“是否可以针对特定阵列”的问题?您的代码中只有一个循环,它以0开头,如果这是您要问的,您可以在第8个元素处以var i=7开头。我不确定您的问题是什么。您是在N个元素之后还是在整个循环完成之后尝试登录?如果是后者,则将log语句置于循环之外。如果是前者,你知道每次N是什么吗?如果是,只需检查(i==N)。如果没有,您如何知道您想要的呢?只需将
console.log()
移动到for循环之外,以这样的速率使用for循环是没有意义的。只需在项目[7]上执行一次操作即可。@David如果OP希望使用其他索引,这可能会很有用。此外,若数组并没有这样的索引,那个么使用for循环就并没有意义了,这可以防止推送未定义的值。只需在项目[7]上执行一次操作即可。@David如果OP希望使用其他索引,这可能会很有用。此外,如果数组没有这样的索引,这可以防止推送
未定义的