【发布时间】:2020-03-29 16:51:32
【问题描述】:
var arr = [{req: [{type: 'high', val: 1},{type: 'low', val: 2}], other: [{random: 123}]}, {req: [{type: 'cool', val: 1},{type: 'med', val: 3}], other: [{random: 456}]}]
如何使用数组函数编写函数以从对象数组内部的对象数组中获取val 的值,其中type 是med
预期结果
var result = 3;
我尝试使用数组的reduce函数
let getRequirementArray = (req, vol) =>
req.reduce((currentVal, obj) => {
return obj.type === vol ? obj.val + currentVal : currentVal;
}, 0);
let getFinalOutput = (arr, vol) =>
arr.reduce((currentVal, obj) => {
let { req } = obj;
let val= getRequirementArray(req, vol);
return val + currentVal;
}, 0);
var result = getFinalOutput(arr, 'med');
但我希望功能更小
【问题讨论】:
-
带有
other键的对象可以包含类型:med 吗? -
@ShubhamKhatri,只有
req包含type'med',如果req对象数组中有多个'med' 类型,就我而言,我只需要首先考虑发生它并返回val属性 -
我根据这个假设添加了我的答案
标签: javascript arrays object ecmascript-6