如何从给定JavaScript对象中检索含selectedAddOn: 'aa'属性的对象
如何从给定数据中检索包含selectedAddOn: 'aa'的对象
嘿,这事儿不难,咱们直接利用JavaScript数组的filter()方法就能精准筛选出你要的对象。你的目标对象藏在data.addOnTypeData这个数组里,只需要给filter()传一个判断条件就行。
具体实现代码
首先先把你的数据放出来(方便参考):
const data = { selectedParentName: 'Choice', addOnTypeDropDownArray: [ { value: 'aa', viewValue: 'aa (Choice)', price: 12, key: 0.42298649258214116, type: 'Choice' }, { value: 'dd', viewValue: 'dd (Choice)', price: 323, key: 0.10174316295283248, type: 'Choice' } ], multiSelect: false, label: 'Size', addOnTypeData: [ { type: 'Size', name: '', key: 0.9570293430160035, parentId: 0.42298649258214116, selectedAddOn: 'aa', value: null, allowMultiSelect: false }, { type: 'Size', name: '', key: 0.8886483410557189, parentId: 0.10174316295283248, selectedAddOn: 'dd', value: null, allowMultiSelect: false } ] };
然后执行筛选操作:
// 筛选出selectedAddOn等于'aa'的对象,结果是包含符合条件元素的数组 const targetObjects = data.addOnTypeData.filter(item => item.selectedAddOn === 'aa'); // 如果确定只有一个符合条件的对象,用find()直接拿到单个对象更高效 const singleTargetObject = data.addOnTypeData.find(item => item.selectedAddOn === 'aa');
代码说明
filter()方法会遍历整个addOnTypeData数组,返回所有满足item.selectedAddOn === 'aa'条件的元素,结果是一个数组(哪怕只有一个符合条件的元素)。find()方法则会返回数组中第一个满足条件的单个对象,如果你能确定符合条件的对象唯一,用这个方法更直接。
执行结果
用filter()得到的结果是:
[ { type: 'Size', name: '', key: 0.9570293430160035, parentId: 0.42298649258214116, selectedAddOn: 'aa', value: null, allowMultiSelect: false } ]
用find()得到的结果就是这个单独的对象,无需从数组中取索引。
内容的提问来源于stack exchange,提问作者Lucifer
相关产品推荐
相关产品推荐

