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跳过间接寻址级别。