Die einfachste Lösung für eine contains
Funktion, wäre eine Funktion, die wie folgt aussieht:
var contains = function (haystack, needle) {
return !!~haystack.indexOf(needle);
}
Idealerweise sollten Sie diese Funktion jedoch nicht als eigenständige Funktion, sondern als Teil einer Hilfsbibliothek verwenden:
var helper = {};
helper.array = {
contains : function (haystack, needle) {
return !!~haystack.indexOf(needle);
},
...
};
Wenn Sie zu den Unglücklichen gehören, die den IE<9 noch unterstützen müssen und sich daher nicht auf indexOf
können Sie Folgendes verwenden Polyfill die ich erhalten habe. aus dem MDN :
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(searchElement, fromIndex) {
var k;
if (this == null) {
throw new TypeError('"this" is null or not defined');
}
var o = Object(this);
var len = o.length >>> 0;
if (len === 0) {
return -1;
}
var n = +fromIndex || 0;
if (Math.abs(n) === Infinity) {
n = 0;
}
if (n >= len) {
return -1;
}
k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
while (k < len) {
if (k in o && o[k] === searchElement) {
return k;
}
k++;
}
return -1;
};
}
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