繁体   English   中英

数组推送中的“ for”循环(javascript)

[英]'for' loop in array push (javascript)

我有一个语法问题,我试图将go.pl分析集成到shopify中的购物车中,因此最终代码如下所示:

 var goadservicesq = goadservicesq || []; goadservicesq.push( [ "_BASKET", [ // first position in basket { identifier: '35353635535', quantity: '2' }, // second position in basket { identifier: '55353533378566', quantity: '1' }, // last position in basket { identifier: '458457435643464', quantity: '3' }, // extra product which solves the "comma" problem {} ] ] ); 

在这里,我尝试在内部进行“ for”循环,以获得上述最终结果:

 // trying to make "for" loop $.getJSON( "/cart.js", function( data ) { console.log(data); // user.go.pl CART script var goadservicesq = goadservicesq || []; goadservicesq.push( [ "_BASKET", [ for (var i = 0; i < data.items_count; i++) { { identifier: data.items[i].id, quantity: data.items[i].quantity }, } // extra product which solves the "comma" problem {} ] ] ); }); 

它会引发错误-> http://prntscr.com/ci7jpz请帮助我。

您需要在文字数组之外构建basket数组:

// trying to make "for" loop
$.getJSON( "/cart.js", function( data ) {
    console.log(data);
    // user.go.pl CART script
    var basket = [];
    for (var i = 0; i < data.items_count; i++) {
        basket.push({
            identifier: data.items[i].id,
            quantity: data.items[i].quantity
        });
    }
    var goadservicesq = goadservicesq || [];
    goadservicesq.push( [ "_BASKET", basket ] );
});

您不能在这样的数组中进行循环,但是如果data.items是一个数组,则可以这样使用Array.prototype.map

$.getJSON( "/cart.js", function( data ) {
  console.log(data);

  // user.go.pl CART script
  var goadservicesq = goadservicesq || [];
  goadservicesq.push(
    [
      "_BASKET",
      [
        data.items.map(function (item) {
          return {
            identifier: item.id,
            quantity: item.quantity
          };
        });
      ]
    ]
  );
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM