Ich muss feststellen, ob ein Wert in einem Array vorhanden ist.
Ich verwende die folgende Funktion:
Array.prototype.contains = function(obj) {
var i = this.length;
while (i--) {
if (this[i] == obj) {
return true;
}
}
return false;
}
Die obige Funktion gibt immer false zurück.
Die Array-Werte und der Funktionsaufruf lauten wie folgt:
arrValues = ["Sam","Great", "Sample", "High"]
alert(arrValues.contains("Sam"));
10 Stimmen
Der Code funktioniert in Safari 4.0.2. Übrigens: Ich würde eine
===
Vergleich anstelle von nur==
.1 Stimmen
"Die obige Funktion gibt immer false zurück." Nein, das tut sie nicht: Die Funktion funktioniert wie erwartet - der Fehler muss woanders liegen.
2 Stimmen
Siehe auch: stackoverflow.com/q/237104/1569
5 Stimmen
Finally its worked. its due to improper trim of the comparing value. there was some space in the comparing value
(Ein Kommentar des Fragestellers zum akzeptierte Antwort .)0 Stimmen
Es funktioniert, Sie hätten Folgendes verwenden sollen
===
anstelle von==
0 Stimmen
Für alle, die noch damit zu kämpfen haben. Das Folgende hat es für mich erledigt: 1. lodash.includes mit folgendem Befehl installieren: npm --save lodash.includes 2. Require lodash.includes: var includes = require('lodash.includes'); 3. use it like this: arrayBeingUsed.includes(valueToLookFor); ( npmjs.com/package/lodash.includes )
0 Stimmen
Verwandt mit besserer Antwort - stackoverflow.com/a/38073833/104380
0 Stimmen
["Admin", "Action", "WriteType"].find( (key) => { console.log(
Taste =, key); return key === "KeyWord" } );
0 Stimmen
developer.mozilla.org/de-US/docs/Web/JavaScript/Reference/
0 Stimmen
Sie können Lodash _.some(arrValues,'Sam') => true /false verwenden
0 Stimmen
If(numbers.join('') == '') dann bedeutet dies, dass das Array mit dem Namen 'numbers' leer ist.
0 Stimmen
Es gibt keine contains-Methode in Javascript für Array, Sie können stattdessen includes verwenden