2016-04-12 8 views
0

Lets sagen, ich habe ein Array:Angular Filter - Gegenstände, von denen Schlüssel in anderen Array existiert

var Array_1 = [ { k:0 }, {k:3} ] ; 
var Array_2 = [ { (other keys), k:0 }, { (other keys), k:5 }, ... ]; 

Ich brauche Artikel von array_2 zu filtern, die k in array_1 haben.

Wie würde ich das mit ng-repeat machen?

+1

Eine gewisse Variation von [Filter] (https://docs.angularjs.org/api/ng/filter/filter) – ste2425

+0

sind die Arrays sortiert? –

+0

Nein, sind sie nicht. Ich denke, ich habe eine Antwort, ich werde es bald posten. – Korte

Antwort

0

Sie können eine Hash-Tabelle für die gewünschten k-Werte verwenden und dann das Array filtern, wenn ein Hash-Wert existiert.

var array_1 = [{ k: 0 }, { k: 3 }], 
 
    array_2 = [{ t: 42, k: 0 }, { x: 5, k: 5 }], 
 
    temp = {}, 
 
    result; 
 

 
array_1.forEach(function (a) { 
 
    temp[a.k] = true; 
 
}); 
 
result = array_2.filter(function (a) { 
 
    return temp[a.k]; 
 
}); 
 

 
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');

Verwandte Themen