如何將類型為對象數(shù)組的 json 集合 arr 中的 price 屬性累加計算,生成 obj_1 或 arr_1 ?
用原生 js 的 for 循環(huán) 或 underscore 如何實現(xiàn)?
var arr = [ { id:1, name: '商戶1', price: 400 }, { id:3, name: '商戶3', price: 200 }, { id:2, name: '商戶2', price: 100 }, { id:1, name: '商戶1', price: 200 }, { id:4, name: '商戶4', price: 800 }, { id:2, name: '商戶2', price: 600 }, { id:1, name: '商戶1', price: 400 } ]; var obj_1 = { 1: { name: '商戶1', price: 1000 }, 2: { name: '商戶2', price: 700 }, 3: { name: '商戶3', price: 200 }, 4: { name: '商戶4', price: 800 }, } var arr_1 = [ { id:1, name: '商戶1', price: 1000 }, { id:2, name: '商戶2', price: 700 }, { id:3, name: '商戶3', price: 200 }, { id:4, name: '商戶4', price: 800 }, ];
擁有18年軟件開發(fā)和IT教學(xué)經(jīng)驗。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項目經(jīng)理、高級軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...
var?arr?=?[ ????{?id:1,?name:?'商戶1',?price:?400?}, ????{?id:3,?name:?'商戶3',?price:?200?}, ????{?id:2,?name:?'商戶2',?price:?100?}, ????{?id:1,?name:?'商戶1',?price:?200?}, ????{?id:4,?name:?'商戶4',?price:?800?}, ????{?id:2,?name:?'商戶2',?price:?600?}, ????{?id:1,?name:?'商戶1',?price:?400?} ]; var?count?=?0 var?arr_1?=?[] var?obj_1?=?[] for(var?i=0;i
var?sum?=?0,arr_1=[...],arr_2=[...],arr_3=[...]; function?counter(obj){ ????obj.forEach(function(item){ ????????sum+=item.price; ????}) } counter(arr_1); counter(arr_2); counter(arr_3);
試試這個
var?reduced?=?arr.reduce(function(p,?item)?{ ????if?(p[item.id])?{ ????????p[item.id].price?+=?item.price; ????}?else?{ ????????p[item.id]?=?{name:?item.name,?price:?item.price}; ????} ????return?p; },?{}); console.log(reduced);