例如:
var array = ['a','a','b','b','c','c','c','c','d','d','d','d','d','d'];
var ans = array.reduce(function(acc,curr){
if(typeof acc[curr] == 'undefined') {
acc[curr] = 1;
} else {
acc[curr] += 1;
}
return acc;
}, {});
会给我:
ans = {'a':'2','b':'2','c':'4','d':'6'}
但我的目标是以这种格式获取它
ans = [{'word':'a','count':'2'},{'word':'b','count':'2'},{'word':'c','count':'4'},{'word':'d','count':'6'}]
任何帮助,将不胜感激谢谢。
但是,您已经有一个简洁的数据格式,如果必须将其转换为更详细的版本,请尝试
var wordCount = [];
Object.keys(ans).forEach(function(word) {
wordCount.push({
word: word,
count: ans[word]
});
});
如果您想要一个多合一的解决方案,请尝试此解决方案。
var array = ['a','a','b','b','c','c','c','c','d','d','d','d','d','d'];
var ans = array.map(function(word) {
return { word: word, count: 1 };
}).reduce(function(p, c) {
for (var i = 0, l = p.length; i < l; i++) {
if (p[i].word === c.word) {
p[i].count += c.count;
return p;
}
}
p.push(c);
return p;
}, []);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句