我在這裏有一小段代碼,我試圖用正在映射的對象的某個屬性創建一個映射。下面是代碼:將數組映射到字典不適用於第一個對象
var operators = [
{ priority: 1, symbol: '-'},
{ priority: 1, symbol: '+'},
{ priority: 2, symbol: '*'}
];
var foo = operators.reduce(function(map,obj) {
map[obj.symbol] = obj;
return map;
});
console.log(foo);
這段代碼的輸出是:
{ priority: 1,
symbol: '-',
'+': { priority: 1, symbol: '+' },
'*': { priority: 2, symbol: '*' } }
你可能注意到了,第一個對象是不正確映射。我試過改變順序來查看我的代碼中是否有錯字,但問題依然存在。
出了什麼問題?
你需要一個初始空對象傳遞給'reduce'。 –
你期待的結果是什麼? – randomguy04