var arr = [
{
li: [
{a: 2, name: '10' },
{a: 3, name: '20' },
],
},
{
li: [
{a: 2, name: '10'},
{a: 3, name: '20'},
]
},
{
li: [
{a: 2, name: '10'},
{a: 3, name: '20'},
]
}
]
让 li 里面 name=''10'' 的a 相加 name="20"的 a 相加
希望得到结果为 [6, 9]
参考这个
var arr = [
{
li: [
{ a: 2, name: '10' },
{ a: 3, name: '20' },
],
},
{
li: [
{ a: 2, name: '10' },
{ a: 3, name: '20' },
]
},
{
li: [
{ a: 2, name: '10' },
{ a: 3, name: '20' },
]
}
];
loop(arr);
console.log(loop(arr))
function loop(data) {
let arr=[0,0]
data.map((item) => {
if(item.li.length>0){
item.li.map((item)=>{
if(item.name==10){
arr[0]+= Number(item.a);
}else if(item.name==20){
arr[1]+=item.a;
}
})
}
})
return arr;
}
console.log(loop(arr, 10, 20))
function loop(data, val1, val2) {
if (data.length == 0) {
return [];
}
let arr = [0,0]
data.map((item) => {
if (item.li.length > 0) {
item.li.map((item, index) => {
if (item.name == val1) {
arr[0] += Number(item.a);
} else if (item.name == val2) {
arr[1] += Number(item.a);
}
})
}
})
return arr;
}
arr.reduce((acc, item) => {
item.li.forEach(_item => {
if (_item.name === '10') acc[0] = acc[0] + _item.a
if (_item.name === '20') acc[1] = acc[1] + _item.a
})
return acc
}, [0,0])