Ich habe die folgende Reihe von eindeutigen IDs:Sortierung Array von Objekten basierend auf Index in anderer Array
idArray = ["56f4cf96dd2ca7275feaf802",
"56f4cf96dd2ca7275feaf7b7",
"56f4cf96dd2ca7275feaf805",
"56f4cf96dd2ca7275feaf7ac"]
Und ich habe noch eine Reihe von Objekten:
stories = [{"title": Story2, id = "56f4cf96dd2ca7275feaf7b7"},
{"title": Story4, id = "56f4cf96dd2ca7275feaf7ac"},
{"title": Story1, id = "56f4cf96dd2ca7275feaf802"},
{"title": Story3, id = "56f4cf96dd2ca7275feaf805"}]
Wie ich die zweiten sortieren Array basierend auf dem Index des ersten Arrays? Vorzugsweise mit lodash, da die Arrays ein bisschen größer werden können.
Bisher ich habe folgendes auf die Indizes aus dem ersten Array zu erhalten:
var sortArray = _.toPairs(idArray)
[ [ '0', 56f4cf96dd2ca7275feaf802 ],
[ '1', 56f4cf96dd2ca7275feaf7b7 ],
[ '2', 56f4cf96dd2ca7275feaf805 ],
[ '3', 56f4cf96dd2ca7275feaf7ac ] ]
Der Versuch, verschiedene Kombinationen von _.map() und _.sortBy() ich nicht richtig scheinen, zu erhalten das Ergebnis, das ich das will, ist:
desiredResult = [{"title": Story1, id = "56f4cf96dd2ca7275feaf802"},
{"title": Story2, id = "56f4cf96dd2ca7275feaf7b7"},
{"title": Story3, id = "56f4cf96dd2ca7275feaf805"},
{"title": Story4, id = "56f4cf96dd2ca7275feaf7ac"}]
Genau mein Gedanke. Du schlägst mich dazu ... Hier, hab eine Geige: https://jsfiddle.net/jx3we8q7/;) – Pevara
Danke, tolle Antwort. Ist es in Ordnung, 'idArray.indexOf (b.id) - dArray.indexOf (a.id)' zurückzugeben, um die Reihenfolge umzukehren? Oder sollte ich reverse() für das resultierende Array verwenden? – user1202888
Ich denke, es gibt nichts Schlechtes, es zu tun. –