gpt4 book ai didi

javascript - 用于访问嵌套对象的正则表达式

转载 作者:行者123 更新时间:2023-11-30 09:14:17 25 4
gpt4 key购买 nike

我有一些 JS 对象,它们每个都有一个名为“products”的孙属性。

例如ecommerce.add.products、ecommerce.remove.products、ecommerce.detail.products、ecommerce.checkout.products、ecommerce.purchase.products

无论上面的具体对象是什么,我都想访问产品数组。

尝试使用正则表达式:

var ecomProducts = ecom[('detail'|'add'|'remove'|'checkout'|'purchase')]['products'];

TypeError: ecom[(((("detail" | "add") | "remove") | "checkout") | "purchase")] is undefined

var ecomProducts = ecom[/'detail'|'add'|'remove'|'checkout'|'purchase'/]['products'];

TypeError: ecom[/'detail'|'add'|'remove'|'checkout'|'purchase'/] is undefined

无论 parent 姓名如何,如何访问嵌套的孙子“产品”对象?

最佳答案

您可以简单地遍历 ecom 对象并检查是否存在以下 Prop detail','add','remove','checkout','purchase'ecom 对象上,

像这样

let outerKey = ['detail','add','remove','checkout','purchase']
let foundProducts = outerKey.reduce((op,inp) => {
if(ecom[inp] && ecom[inp].products && ecom[inp].products.length){
op.push(ecom[inp].products)
}
return op
},[])

Tried using regex:

var ecomProducts = ecom[('detail'|'add'|'remove'|'checkout'|'purchase')]['products'];

不,这不是正则表达式,这只是逻辑或,所以您总是以ecom['checkout']['products']

结尾

关于javascript - 用于访问嵌套对象的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56318599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com