Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何返回具有多个对象层的变量中的数组_Javascript_Arrays_Multidimensional Array - Fatal编程技术网

Javascript 如何返回具有多个对象层的变量中的数组

Javascript 如何返回具有多个对象层的变量中的数组,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我有以下两个变量: 'ecommerce': { 'checkout': { 'actionField': {'step': 4}, 'products': [{ 'name': 'Spirit Pack', 'id': '12345', 'price': '55', }] } } 'ecommerce': { 'purchase': { 'actionField': {'step': 4}, 'products': [{ 'name': 'Spirit Pack', 'id': '1234

我有以下两个变量:

'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的数组

const fxn = (ecommerce) => {
  let keys = Object.keys(ecommerce);
  return ecommerce[keys[0]]['products'];
}

该函数非常脆弱,因为只有当对象的形状与上面相同,并且在电子商务对象中只有一个键时,该函数才起作用,但在这里它会起作用

为什么需要我推断相同的代码才能从这两个对象获取产品数组?谢谢!背景是特殊的。它与谷歌标签管理器有关。我只能在不同的状态下访问这两个变量,但我需要一个函数,这样每次都可以返回产品数组。电子商务对象是否总是只有一个属性?使用Object.keysx.commerce[0]获取该属性名。您还可以使用Object.ValuesCommerce跳过间接寻址级别。