Ich habe ein Array mit über 50 Objekt. Dieses Array ist ein Ergebnis von zwei Arrays. Elemente in diesem Array sind Objekte und jedes Objekt Schlüssel ‚date‘ mit dem Datum Zeichenfolge im Format:Javascript => Array-Elemente miteinander nach Datum übereinstimmen
`"2017-03-31T11:30:00.000Z"`
Und Schlüssel ‚Titel‘ mit Text. So habe ich Elemente wie:
[
{date: "2017-03-31T11:30:00.000Z", caption: "text_1"},
{date: "2016-03-31T11:30:00.000Z", caption: "text_2"},
{date: "2016-03-31T11:30:00.000Z", caption: "text_3"},
{date: "2017-03-31T11:30:00.000Z", caption: "text_4"}
]
In Ruby, die ich kenne, viel besser und tiefer, können Sie Elemente in Array Karte und das Rück neue und Bedingung Rückkehr von if-Anweisung. Ich habe mich gefragt, ob es so etwas in JS gibt, ich bin gerade dabei, Array durchzulaufen und jedes Element mit anderen zu vergleichen, aber es ist nicht der performanteste Weg. Ich möchte wie etwas tun:
let newArray = myArray.map((a,b) => { if (a.date === b.date) { return {text1: a.caption, text2: b.caption}}});
So wäre führen:
[
{text1: "text_1", text2: "text_4"},
{text1: "text_2", text2: "text_3"}
]
Hat so etwas, etwas eleganter als auch performant existiert?
Dank ...
die so klicken Sie '<>' Snippet-Editor und erstellen Sie eine [mcve], dann können wir besser helfen – mplungjan
var result = array.filter (i => i.date == date); –
Nicht wirklich für 'map()' da du nur bedingt zurückkommst. Das resultierende Array hat immer noch die gleiche Länge wie das Original, ist aber voller Löcher – charlietfl