Gibt es eine Funktion, die true oder false zurückgibt, wenn die Suche für ein Objekt in ein array von Objekten?

Ich bin auf der Suche nach einem guter Weg, um zu überprüfen, ob ein Objekt existiert in einem array von Objekten. Das beabsichtigte Ergebnis ist true, wenn alle Schlüssel/Werte vorhanden sind, in das gleiche Objekt im array.

Die Antworten, die ich gefunden durch stöbern stackoverflow wie Finden Objekt-id in ein array von JavaScript-Objekten, die mit jQuery.grep oder Finden Sie einen Wert in ein array von Objekten in Javascript return das Gefundene Objekt. Was ich Suche ist ein Boolesches Ergebnis (nicht das gefunden Objekt).

Weiß ich, dass ich Schleife für alle array-Elemente zu vergleichen und dann den einzelnen Wert....etc

Aber was ich meine ist, wenn es ist ein Weg, um JS-Methoden wie diese:

JS:

var listOfObjecs = [
	{id: 1, name: "Name 1", score: 11},
	{id: 2, name: "Name 2", score: 22},
	{id: 3, name: "Name 3", score: 33},
	{id: 4, name: "Name 4", score: 44},
	{id: 5, name: "Name 5", score: 55},
];

var isObjectExist = function(search){
  return listOfObjecs.filter(function(obj){
     if(obj.id===search.id && obj.name===search.name && obj.score===search.score){
          return true;
     }
     return false;
  });
}

console.log( isObjectExist({id: 3, name: "Name 3", score: 33}) );
//outputs the found object [{id: 3, name: "Name 3", score: 33}]

console.log( isObjectExist({id: 9, name: "Name 3", score: 33}) );
//outputs an empty object []

Dies ist, weil:

Den filter () - Methode erstellt ein neues array mit allen Elementen, die pass
der test umgesetzt von der vorgesehenen Funktion.

Wenn es keine native JavaScript-Methode (Rückgabe true oder false) wie kann ein update der isObjectExist() Funktion true oder false zurückgeben?

  • Array.prototype.some()
  • Was !!arr.find(function(){...}); Finden Sie unter Array.find()
  • Die find () - Methode gibt einen Wert des ersten Elements im array erfüllt, dass die Prüf-Funktion. Ansonsten undefined zurückgegeben wird. Damit kein Boolesches Ergebnis.
  • Möglich, Duplikat der Wie kann ich überprüfen, ob ein array umfasst ein Objekt in JavaScript?
  • Das ist, warum Sie hinzufügen !! auf die Rückkehr. Dies wirft truthy (ein Objekt) zu true - und falsy (undefined) in false.
  • falsche Funktion für den job, wird scheitern, wenn das Unternehmen gesucht hat falsey Wert.
  • Ich empfehle das Lesen durch die Dokumentation, die für arrays, um zu sehen, alle Funktionen, weil es wirklich nicht so viele, und es wird sparen Sie viel Zeit, in die Zukunft.

Schreibe einen Kommentar