簡體   English   中英

堅持創建將返回對象的函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM