0
我有這樣的數據結構,其中數組中的每個對象都帶有一個數字 - 在我的情況下是一個「num」屬性。所以 - 在節點(比我下面做的)有一個更簡單的方法來計算每個對象的數字,它是它之前的父數組的所有數字的值?節點:計算「累計」總數
_ = require('underscore');
_.nst = require('underscore.nest');
var data = [
{'name' : 'name 1', 'num' : 40},
{'name' : 'name 1', 'num' : 20},
{'name' : 'name 2', 'num' : 10},
{'name' : 'name 2', 'num' : 50},
{'name' : 'name 2', 'num' : 40},
{'name' : 'name 2', 'num' : 70},
{'name' : 'name 2', 'num' : 30}
];
這給了我2個陣列
var obj = _.chain(data)
.groupBy('name')
.map(function (value) {
return _.sortBy(value, 'num');
}).value();
數組有沒有更簡單的方式做多長時間的另一循環內循環,多數民衆贊成(每個)?這等..對於每一個對象我需要得到它之前或在第一個對象的情況下0的對象的總價值...
_.each(obj, function(value){
//loop through each array in obj
for(var i=0; i<value.length; i++){
if (i !== 0 && i > 1) {
value[i].basis = value[i].num + value[i-1].basis;
} else if (i === 1) {
value[i].basis = value[i].num + value[i-1].num;
} else {
value[i].basis = 0;
}
}
});
console.log(obj);
......得到這個:
輸出中每個名字的第一個數字似乎是錯誤的。無論如何,如果您在保存值的地方更改數據結構,則最容易改進。數據來自哪裏? – maraca