2016-04-09 11 views
0

Bu nesne dizisini nesnenin kimliğinin anahtar olduğu ve nesnenin değeri nesnenin olduğu yeni bir nesne dizisine nasıl eşleyebilirim?Nesnenin eşleme nesnesini yeni nesneye, anahtar olarak kimliği ile belirtin

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}} ] 

Bir sözdizimi hatası underscore dahil değildi sizin JS Fiddle tüm yukarıdaki Uncaught SyntaxError: Unexpected token .(…)

JSFiddle

cevap

1

İlk, çalışırken olsun, ama bu çalışacaktır:

var mapped = _.map(players, function(player) { 
    var playerObj = {}; 
    playerObj[player.id] = player; 
    return playerObj; 
}) 
+0

Daha iyi bir yol bulmaya çalışıyordum, bu yöntemi kullanarak bitiyorum. –

0

ES6 işlevini kullanmaktan memnunsanız, hesaplanan özellik adını kullanan bir ok işlevi kullanabilirsiniz:

var mapped = _.map(players, player => ({ [player.id] : player})); 
+0

Aşağı oy için herhangi bir sebep var mı? Yorumsuz anonim oylar kimseye yardım etmiyor ve ben bir problemin nerede olduğunu bilmek isterim ki bundan öğrenebilir ve cevabı düzeltebilirim. –

İlgili konular