【问题标题】:How to return array in a variable with multiple object layer [duplicate]如何在具有多个对象层的变量中返回数组[重复]
【发布时间】:2019-04-12 23:31:59
【问题描述】:

我喜欢以下两个变量:

'ecommerce': { 'checkout': { 'actionField': {'step': 4}, 'products': [{
'name': 'Spirit Pack', 'id': '12345', 'price': '55', }] } }


'ecommerce': { 'purchase': { 'actionField': {'step': 4}, 'products': [{
'name': 'Spirit Pack', 'id': '12345', 'price': '55', }] } }

当第二层层对象不同时,如何返回名为products的数组。

【问题讨论】:

  • 为什么需要(我在推断)相同的代码才能从两个对象中获取产品数组?
  • 谢谢!上下文是特殊的。它与谷歌标签管理器有关。我只能以不同的“状态”访问这两个变量,但我需要一个函数,以便每次都可以返回产品数组。
  • ecommerce 对象是否总是只有一个属性?使用Object.keys(x.commerce)[0] 获取该属性名称。

标签: javascript arrays multidimensional-array


【解决方案1】:
const fxn = (ecommerce) => {
  let keys = Object.keys(ecommerce);
  return ecommerce[keys[0]]['products'];
}

该函数非常脆弱,因为它仅在对象与上述形状相同且电子商务对象中只有一个键的情况下才有效,但在这里它可以解决问题。

【讨论】:

  • 您也可以使用Object.values(ecommerce) 跳过一个间接级别。
猜你喜欢
  • 1970-01-01
  • 2020-03-10
  • 1970-01-01
  • 2021-12-09
  • 2020-08-06
  • 2021-01-29
  • 2021-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多