[英]Stuck on creating a function that will return objects
嗨,我想知道我能否在這里得到一些幫助,所以我陷入了困境。 我正在嘗試創建一個直方圖函數,該函數采用類似['a','a','b','c','b','a']的數組並返回{a:3,b:2,c :1}使用reduce函數構建直方圖函數。 但是我對回調函數應該是什么感到困惑。
感謝您的任何答復。
嘗試遍歷數組並相應地填充/增加對象的值,
var x = ['a', 'a', 'b', 'c', 'b', 'a'];
var y = {};
x.forEach(function(itm){
y[itm] = ++y[itm] || 1;
});
您可以像這樣減少數組:
['a', 'a', 'b', 'c', 'b', 'a'].reduce(function(obj, value) {
obj[value] = obj[value] || 0;
obj[value]++;
return obj;
}, {});
如果您的環境支持Object.assign()和ES6,則還可以執行以下操作:
['a', 'a', 'b', 'c', 'b', 'a']
.reduce((a, b) => Object.assign(a, {[b]: a[b] ? ++a[b] : 1}), {});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.