Ich habe ein Array von Object wie folgt:
var obj = [
{a: 1, b: 5, c: 9},
{a: 2, b: 6, c: 10},
{a: 3, b: 7, c: 11},
{a: 4, b: 8, c: 12}
];
Ich weiß, wie man ein einzelnes Objekt mit erhält Array.map()
so was.
var result = obj.map(x=>x.a)
Dies wird mir folgendes Ergebnis geben
[1, 2, 3, 4]
Aber ich möchte Ergebnis wie folgt:
[
{a: 1, b: 5},
{a: 2, b: 6},
{a: 3, b: 7},
{a: 4, b: 8}
]
Kurz gesagt, aus einem Array von Objekten möchte ich nur wenige Felder (mehr als eines) auswählen.
Wie kann ich das machen?
Sie können verwenden .map()
mit Objektdestrukturierung:
let data = [
{a:1,b:5,c:9}, {a:2,b:6,c:10},
{a:3,b:7,c:11}, {a:4,b:8,c:12}
];
let result = data.map(({ a, b }) => ({a, b}));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Benutzen map()
:
var data = [
{a:1,b:5,c:9},
{a:2,b:6,c:10},
{a:3,b:7,c:11},
{a:4,b:8,c:12}
];
let modified = data.map(obj => ({a: obj.a, b: obj.b}))
console.log(modified);
Oder wenn Sie lieber destrukturieren:
var data = [
{a:1,b:5,c:9},
{a:2,b:6,c:10},
{a:3,b:7,c:11},
{a:4,b:8,c:12}
];
let modified = data.map(({ a, b }) => ({a, b}));
console.log(modified);
Sie können ein benutzerdefiniertes Objekt mit erforderlichen Eigenschaften zurückgeben, indem Sie verwenden map()
var obj = [{a:1,b:5,c:9},
{a:2,b:6,c:10},
{a:3,b:7,c:11},
{a:4,b:8,c:12}
];
let op = obj.map(e => {
return { a:e.a, b: e.b };
})
console.log(op);
In Ihrer Lösung für die Produktion [1,2,3,4]
, x.a
ist keine Mikrosyntax, sondern ein vollwertiger JavaScript-Ausdruck. Sie können es also einfach durch das JavaScript ersetzen, um ein neues Objekt mit den gewünschten Eigenschaften zu erstellen.
var result = obj.map(x=>{a: x.a, b: x.b});
… fast. Die zusätzliche Komplikation ist, dass a {
nach einer =>
wird als Beginn eines Funktionskörpers interpretiert, nicht als Beginn eines Objektliterals. Sie können dies vermeiden, indem Sie das Objektliteral einfach in sonst-noop-Klammern einschließen.
var result = obj.map(x=>({a: x.a, b: x.b}));
Erstellen Sie eine neue Schleife, um das Array mit ausgewählten Elementen zu filtern
– Azad
11. Dezember 2018 um 6:56 Uhr