我正在尝试通过循环以下内容并组合具有相似类型的对象的值来创建一个新对象?
所以我有这样的事情:
var data = [{
transID: 123,
repId: 86,
profit: 117.3,
expense: 96.76 },
{
transID: 124,
repId: 35,
profit: 47.39,
expense: 15.15 },
{
transID: 125,
repId: 86,
profit: 62.62,
expense: 15.17 }]
所以我需要创建一个与上面相同的新数组,仅对于每个代表我想要一个具有利润和费用总和的对象(所以也没有 transID):
[{
repId: 86,
profit: 179.92,
expense: 111.93 },
{
repId: 35,
profit: 47.39,
expense: 15.15 }]
我只是在学习(放轻松,这可能是完全错误的),但我尝试过类似的方法:
var otherData = [];
for ( var i = 0; i < data.length; i++ ) {
var thisDataObj = data[i];
for ( var j = 0; j < data.length; i++) {
var thisComparedData = data[j]; // maybe a ridiculous approach ??
if(thisDataObj.repId == thisComparedData.repId) {
if(thisDataOjb.transId != thisComparedData.transId) {
// struggling with this part if this is event the right approach
// the loop is bad because it will recount
}
}
}
所以没有显示我在那个循环中尝试的东西,我很确定这是错误的,因为如果我尝试求和,创建对象并推送它,它将重新计算值。只是不确定什么是更好的方法?
任何帮助是极大的赞赏。