【问题标题】:'for' loop in array push (javascript)数组推送中的“for”循环(javascript)
【发布时间】:2016-09-15 07:45:59
【问题描述】:

我有一个语法问题,我正在尝试将 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 请帮帮我。

【问题讨论】:

    标签: javascript arrays loops shopify


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-18
        • 1970-01-01
        • 2018-06-19
        • 1970-01-01
        • 2012-02-18
        • 1970-01-01
        相关资源
        最近更新 更多