用对象的话 准确性还高点 现在只能通过索引去找
let arr = [
['no1',34,'usd',200,'rmb'],
['no1',30,'usd',200,'rmb'],
['no2',50,'usd',200,'rmb'],
['no2',40,'eur',320,'rmb'],
['no3',50,'hkd',100,'rmb']
]
getTotal('usd', arr)
getTotal('rmb', arr)
function getTotal(type, arr) {
let list = arr.filter(item => {
return item.indexOf(type) != -1;
})
let index = type == 'rmb' ? 3 : 1;
return {
total: list.reduce((sum, item) => {
return sum += item[index];
}, 0),
list: list.reduce((sum, item) => {
return sum += [item[0], item[index], index == 1 ? item[2] : item[4]];
}, 0),
}
}