J'ai 2 tableaux.
On dirait d'abord comme: second ressemble à: p> J'ai besoin de trier arrojobjects par une règle, si les éléments du texte de l'objet. Faites correspondre l'élément du tableau Array, puis l'objet doit être d'abord et tous les autres objets derrière celui-ci P> J'ai besoin d'une règle de tri, qui triera mon arr à cet état: P> const arrOjObjects = [
{text: "ILS", value: 3.5020374898}, // ILS is in arr
{text: "DKK", value: 6.7633795164} // DKK is in arr
{text: "HUF", value: 300.3803314317},
{text: "GBP", value: 0.7925201485},
{text: "IDR", value: 14127.9996377796},
]
3 Réponses :
Je ne peux pas penser à une solution élégante à votre problème. Mais voici une voie directe pour résoudre votre problème.
Tout d'abord, trouvez les éléments que vous souhaitez en fonction de votre tableau de recherche p> après lequel, emploie dans les valeurs restantes qui ne font pas partie des critères de recherche p>
Cela devrait fonctionner
arrOjObjects.sort((a, b) => { if (arr.includes(a.text) && !arr.includes(b.text)) { return -1; } else if (!arr.includes(a.text) && arr.includes(b.text)) { return 1; } else { return a.value - b.value; } });
Vous pouvez utiliser p> array.pototype.sort code>
const arrOjObjects = [
{text: "HUF", value: 300.3803314317},
{text: "GBP", value: 0.7925201485},
{text: "IDR", value: 14127.9996377796},
{text: "ILS", value: 3.5020374898},
{text: "DKK", value: 6.7633795164}]
const arr = ["ILS", "DKK"];
arrOjObjects.sort((a, b) => arr.includes(b.text) - arr.includes(a.text));
console.log(arrOjObjects);
C'est bien, mais je suppose que le rappel peut être simplifié à arr.inclues (b.text) - arr.includes (A.Text) code>
@georg nous pouvons sûrement faire cela, cependant, qui ne fonctionne pas Environnement de nœud JDoodle.com/a/1ce3 code>, je ne sais pas pourquoi.
Parce que vous avez a.text code> -
b.text code> là, devrait être l'autre sens.
Pourriez-vous s'il vous plaît nous montrer ce que vous avez essayé?
Les éléments du deuxième tableau doivent-ils être à l'ordre du deuxième tableau?
Tri comme ceci ('a "des choses d'abord, puis pas" A ") est plus facile avec deux filtres:
x.filter (ar. (x.text)))) code>