2016-05-02 10 views
6

Ich muss überprüfen, ob alle Elemente in einem Array in einem anderen Array gefunden werden können. Das heißt, ich muss prüfen, ob ein Array eine Teilmenge eines anderen Arrays ist.Überprüfen Sie, ob alle Elemente in einem anderen Array gefunden werden können

Beispiel:

var array = [1, 2, 5, 7]; 
var otherArray = [1, 2, 3, 4, 5, 6, 7, 8]; 

diese beiden Arrays über Vergleicht man sollte true zurückgeben, da alle Elemente in array in otherArray finden.

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

diese beiden Arrays über Vergleicht man sollte als eines der Elemente in array false zurückgeben kann nicht in otherArray finden.

Ich habe versucht, die indexOf Methode innerhalb einer for-Schleife ohne Erfolg zu verwenden. Ich hoffe, jemand könnte mir helfen. :)

+1

Haben Sie im Voraus wissen, ob die Arrays immer sortiert werden? –

+0

Wenn 'otherArray' groß ist, wäre es am besten, es in ein Objekt zu konvertieren, dessen Schlüssel die Elemente sind. – Barmar

Antwort

11

Verwenden Array.prototype.every:

Die jeder() Methode überprüft, ob alle Elemente in der Anordnung den Test durch die vorgesehene Funktion implementiert passieren.

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

 
var isSubset = array.every(function(val) { 
 
    return otherArray.indexOf(val) >= 0; 
 
}) 
 

 
document.body.innerHTML = "Is array a subset of otherArray? " + isSubset;

Verwandte Themen