下划线将对象数组映射到以 id 为键的新对象
Underscore map array of object to new object with id as key
如何将这个对象数组映射到一个新的对象数组,其中对象的 id 是键,它的值是对象?
var players = [{id: 2, score: 5}, {id: 3, score: 10}]
var mapped = _.map(players, function(x) { return {x.id: x}})
// desired output = [{2: {id: 2, score: 4}, {3: {id: 3, score: 10}} ]
我在尝试上述操作时遇到语法错误 Uncaught SyntaxError: Unexpected token .(…)
首先,在您的 JS Fiddle 中您没有包含 underscore,但这会起作用:
var mapped = _.map(players, function(player) {
var playerObj = {};
playerObj[player.id] = player;
return playerObj;
})
如果您对使用 ES6 功能感到满意,那么您可以使用箭头函数,它使用计算出的 属性 名称:
var mapped = _.map(players, player => ({ [player.id] : player}));
如何将这个对象数组映射到一个新的对象数组,其中对象的 id 是键,它的值是对象?
var players = [{id: 2, score: 5}, {id: 3, score: 10}]
var mapped = _.map(players, function(x) { return {x.id: x}})
// desired output = [{2: {id: 2, score: 4}, {3: {id: 3, score: 10}} ]
我在尝试上述操作时遇到语法错误 Uncaught SyntaxError: Unexpected token .(…)
首先,在您的 JS Fiddle 中您没有包含 underscore,但这会起作用:
var mapped = _.map(players, function(player) {
var playerObj = {};
playerObj[player.id] = player;
return playerObj;
})
如果您对使用 ES6 功能感到满意,那么您可以使用箭头函数,它使用计算出的 属性 名称:
var mapped = _.map(players, player => ({ [player.id] : player}));