我不知道如何实现reduce功能。 我从地图输出了一份文件...... 例如两个文件 键“_id”:“AD” “值” { “numtweets”:1, “hastags”:{ “OPINIÓ”:1, “debat”:1, “不存在”:1, “tampoc”:1, “promet”:1, “gaire”:1, “diàleg”:1 } } 和其他
{
"numtweets" : 1,
"hastags" : {
"other" : 1,
"debat" : 1,
"inexistent" : 1,
"another" : 1,
}
}
我需要一个减少所有总和的函数,以便
"numtweets" : 2,
"dicwords" : {
"OPINIÓ" : 1,
"debat" : 2,
"inexistent" : 2,
"tampoc" : 1,
"promet" : 1,
"gaire" : 1,
"diàleg" : 1,
"other" : 1,
"another" : 1
},
"lisuser" : {
"user2" : 1
}
如果我的json值只是nuwtweets,则reduce是
function(key, values) {
return Array.sum(values);
};
如果mi json值只是hastags(没有numtweets和lisuser),则reduce函数是
var r = function(key, values) {
result = {}
values.forEach(function(val) {
for (hashtag in val) {
if (hashtag in result) {
result[hashtag] = result[hashtag] + val[hashtag]
} else {
result[hashtag] = val[hashtag]
}
}
});
return(result)
};
但我不知道如何混合2减少功能。 我的mongodb和JavaScript水平非常低。 感谢
答案 0 :(得分:0)
试试这个:
let data = values.reduce((finalObj, ele) => {
finalObj.numtweets += ele.numtweets
for (key in ele.hastags) {
if(ele.hastags.hasOwnProperty(key)) {
if(finalObj.hastags[key])
finalObj.hastags[key] += ele.hastags[key]
else
finalObj.hastags[key] = ele.hastags[key]
}
}
return finalObj
})
console.log(data)
其中value是要减少为一个对象的对象的数组