【问题标题】:Select a key value of all objects inside a array [duplicate]选择数组内所有对象的键值[重复]
【发布时间】:2017-05-31 18:58:22
【问题描述】:

我有这个代码:

<script>
  fbq('track', 'InitiateCheckout', {
    content_ids: {{orderFormProducts}},
    content_type: 'product'
  });
</script>

这给了我整个数组:

content_ids: [
               {
                 "id":"1",
                 "name": "product name",
                 "sku": "10",
                 "skuName": "sku name"
               },
               {
                 "id": "2",
                 "name": "product name",
                 "sku":"20",
                 "skuName": "sku name"
               }
             ]

我需要的是只获取该数组内所有对象的sku 值,如下所示:

content_ids: ["10", "20"]

如果我使用{{orderFromProducts}}[0].sku,我可以从索引为 0 的对象中获取 sku 值,但我需要像前面提到的那样从数组内的所有对象中获取值,而 {{orderFromProducts}}.sku 不起作用。

有什么想法吗?

【问题讨论】:

  • 迭代数组...并从每个对象中获取 sku

标签: javascript arrays json google-tag-manager facebook-pixel


【解决方案1】:

使用array map

orderFromProducts.map(function(product) {
  return product.sku;
})

【讨论】:

    【解决方案2】:

    您可以使用.map() 创建一个填充有sku 值的新数组。

    let content_ids = [{
        "id": "1",
        "name": "product name",
        "sku": "10",
        "skuName": "sku name"
      },
      {
        "id": "2",
        "name": "product name",
        "sku": "20",
        "skuName": "sku name"
      }
    ];
    
    let skus = content_ids.map(x=>x.sku);
    
    console.log(skus);

    对于像 IE 7 这样的老式浏览器,请改用 for

    var content_ids = [{
        "id": "1",
        "name": "product name",
        "sku": "10",
        "skuName": "sku name"
      },
      {
        "id": "2",
        "name": "product name",
        "sku": "20",
        "skuName": "sku name"
      }
    ];
    
    var skus = [];
    for (var i = 0, len = content_ids.length; i < len; i++) {
      skus.push(content_ids[i].sku);
    }
    
    
    console.log(skus);

    【讨论】:

      【解决方案3】:
      content_ids.map(el=>el.sku);
      

      在你问之前请http://google.it,你可能已经找到了 https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/map.

      【讨论】:

      • 请注意 .map() 函数在旧版浏览器中不可用。(特别是 IE 8 或更早版本)
      • @chambo 连我爷爷都不用 IE8了...
      • @chambo 在这种情况下只需切换到带有for 的循环:)
      • @Jonasw - 你的爷爷很喜欢这个游戏!尽管你很时髦,但仍有一些网站必须保持与 IE 8 甚至更早版本的兼容性。我想我会提到它。安全总比后悔好。 YMMV
      猜你喜欢
      • 2022-11-24
      • 2020-11-11
      • 1970-01-01
      • 2016-06-03
      • 2019-05-17
      • 2023-02-03
      • 2016-06-30
      • 1970-01-01
      • 2020-09-19
      相关资源
      最近更新 更多