2017-11-24 2 views
-3

Ich verwende JavaScript und möchte prüfen, ob ein Element in einem Array von Arrays existiert. HierWie benutzt man die Methode mit Arrays von Arrays?

ein Beispiel:

var array =[[1,5,6],[2,3],[5,8,9]]; 

Wie überprüfen zum Beispiel 6 existiert in array?

+2

sein kann 'var existiert = array.some (x => x.includes (6))' – Satpal

+0

Danke es löst mein Problem. – John

Antwort

2
let exists; 

array.forEach(x => { 
    if (x.includes(6)) exists = true; 
}); 
0

Wenn Sie möchten, können Sie wiederverwendbare Funktion verwenden. Versuchen Sie dies auf jsFiddle

var array =[[1,5,6],[2,3],[5,8,9]]; 

function checkAvailability(arr, val) { 
    return arr.some(function(arrVal) { 
    return arrVal.includes(val); 
    }); 
} 

checkAvailability(array, 6); // true 
checkAvailability(array, 12) // false 

Bitte lesen Sie die documentation für Array.some();

Hinweis:

einig() wurde in der 5. Auflage auf den ECMA-262-Standard hinzugefügt; als solche es möglicherweise nicht in allen Implementierungen des Standards vorhanden. Sie können umgehen, indem Sie den folgenden Code am Anfang von Ihre Skripte einfügen, so dass die Verwendung einiger() in Implementierungen, die nicht nativ unterstützen. Dieser Algorithmus ist genau der in ECMA-262, 5. Ausgabe spezifizierte Algorithmus, vorausgesetzt, dass Object und TypeError ihre ursprünglichen Werte haben und dass fun.call den ursprünglichen Wert Function.prototype.call() auswertet.

Polyfill:

// Production steps of ECMA-262, Edition 5, 15.4.4.17 
// Reference: http://es5.github.io/#x15.4.4.17 
if (!Array.prototype.some) { 
    Array.prototype.some = function(fun/*, thisArg*/) { 
    'use strict'; 

    if (this == null) { 
     throw new TypeError('Array.prototype.some called on null or undefined'); 
    } 

    if (typeof fun !== 'function') { 
     throw new TypeError(); 
    } 

    var t = Object(this); 
    var len = t.length >>> 0; 

    var thisArg = arguments.length >= 2 ? arguments[1] : void 0; 
    for (var i = 0; i < len; i++) { 
     if (i in t && fun.call(thisArg, t[i], i, t)) { 
     return true; 
     } 
    } 

    return false; 
    }; 
} 
Verwandte Themen