'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 请帮助我。

你不能像那样在数组中创建循环,但如果 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
          };
        });
      ]
    ]
  );
});

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

// 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 ] );
});