95 votes

Comment trouver l'index d'un objet par la clé et la valeur dans un tableau en javascript ?

Étant donné :

var peoples = [
  { "attr1": "bob", "attr2": "pizza" },
  { "attr1": "john", "attr2": "sushi" },
  { "attr1": "larry", "attr2": "hummus" }
];

Recherché :

Index de l'objet où attr === value par exemple attr1 === "john" ou attr2 === "hummus"

Mise à jour : Lisez attentivement ma question, je ne veux pas trouver l'objet via $.inArray ni obtenir la valeur d'un attribut spécifique de l'objet. Veuillez en tenir compte dans vos réponses. Merci !

2voto

Tycho Points 101

Vous pouvez également en faire une méthode réutilisable en dépensant du JavaScript :

Array.prototype.findIndexBy = function(key, value) {
    return this.findIndex(item => item[key] === value)
}

const peoples = [{name: 'john'}]
const cats = [{id: 1, name: 'kitty'}]

peoples.findIndexBy('name', 'john')
cats.findIndexBy('id', 1)

1voto

Siva Charan Points 10518

Faites de cette façon:-

var peoples = [
  { "name": "bob", "dinner": "pizza" },
  { "name": "john", "dinner": "sushi" },
  { "name": "larry", "dinner": "hummus" }
];

$.each(peoples, function(i, val) {
    $.each(val, function(key, name) {
        if (name === "john")
            alert(key + " : " + name);
    });
});

SORTIE :

name : john

Consultez le site DÉMO EN DIRECT

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X