J'ai un tableau d'objets
Je recherche dans le tableau comme ceci
let arr = [
{ name:"string 1", arrayWithvalue:"1,2", other: "that" },
{ name:"string 2", arrayWithvalue:"2", other: "that" },
{ name:"string 2", arrayWithvalue:"2,3", other: "that" },
{ name:"string 2", arrayWithvalue:"4,5", other: "that" },
{ name:"string 2", arrayWithvalue:"4", other: "that" },
];
var item = arr.find(item => item.arrayWithvalue === '4');
console.log(item)
Cela devrait retourner un tableau avec ces deux lignes
{ name:"string 2", arrayWithvalue:"4,5", other: "that" },
{ name:"string 2", arrayWithvalue:"4", other: "that" }
Il ne renvoie qu'une seule ligne qui est la première correspondance.
{ name:"string 2", arrayWithvalue:"4", other: "that" }
Je ne veux pas utiliser de bibliothèques externes pour cela. Comment puis-je retourner toutes les correspondances correspondant aux critères?
Vous devez utiliser la méthode filter
à la place de find
. Cela renverra un nouveau tableau contenant uniquement les membres qui renvoient une valeur véridique à partir de la fonction passée.
Array.prototype.find()
, conformément à la spécification MDN : renvoie la valeur du premier élément du tableau qui satisfait la fonction de test fournie .
Ce que vous souhaitez utiliser à la place est la fonction de filtre.filter()
qui renverra un tableau de toutes les instances qui correspondent à votre fonction de test.
Utilisez la méthode de filtrage des tableaux. Comme
arr.filter(res => res.arrayWithvalue.indexOf('4') !== -1);