2016-04-24 4 views
2

Angenommen ich diese Daten haben:Wie konvertiert Werte Array von Objekten

var id = 81; 
var categories = [1, 2, 3, 4, 5]; 

Wie verwandeln ich dies in:

[{id: 81, category: 1}, {id: 81, category: 2}, {id: 81, category: 3}, {id: 81, category: 4}, {id: 81, category: 5}] 

Gibt es eine elegante Möglichkeit, dies mit zu tun, unterstreichen oder lodash ?

Antwort

9

Keine Bibliotheken für hier erforderlich.

const result = categories.map(x => ({ id, category: x })) 
+1

Dank für Stenographie zeigen Schreibweise für "id". – strah

2

Working Example JSBin

var id = 81; 
var categories = [1, 2, 3, 4, 5]; 
var arr = []; 

for (var i = 0; i < categories.length; i++) { 
    arr.push({id: id, category: categories[i]}); 
} 

Oder:

var a = categories.map(function(a) { 
    return {id: id, category: a}; 
}); 
1

Sie brauchen keine Bibliothek, nur gute, alte Vanille JS.

var newArray = categories.map(function(item) { 
    return {id: id, cetegory: item} 
}); 
+0

Die Ironie: Vanilla.js ist eine Bibliothek, eine * 0-Byte-Bibliothek *. – 4castle

+0

Wenn Sie darauf beziehen: http://vanilla-js.com/ als gut ... es ist ein Witz :-) – strah

1

Mit Lo-Dash/Unders, würde der Code:

var result = _.map(categories, x => ({ id, category: x })); 

Aber das ist eigentlich mehr als die reine JS-Lösung (from Роман Парадеев):

var result = categories.map(x => ({ id, category: x }));