0
votes

Trier des objets d'objets par coïncidence avec un autre tableau JS réagit ReDux

J'ai 2 tableaux. On dirait d'abord comme: xxx pré>

second ressemble à: p> xxx pré>

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 commentaires

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))))


3 Réponses :


0
votes

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 xxx

après lequel, emploie dans les valeurs restantes qui ne font pas partie des critères de recherche xxx


0 commentaires

0
votes

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;
  }
});


0 commentaires

1
votes

Vous pouvez utiliser array.pototype.sort code>

p>

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);


3 commentaires

C'est bien, mais je suppose que le rappel peut être simplifié à arr.inclues (b.text) - arr.includes (A.Text)


@georg nous pouvons sûrement faire cela, cependant, qui ne fonctionne pas Environnement de nœud JDoodle.com/a/1ce3 , je ne sais pas pourquoi.


Parce que vous avez a.text - b.text là, devrait être l'autre sens.