2017-02-16 6 views
-1

У меня есть это ...Javascript Поиск и фильтр элементы

var subc=[ 
    { r: 'aaa', d: 'ddda'}, 
    { r: 'bbb', d: 'dddc'}, 
    { r: 'ccc', d: 'dddc'}, 
    { r: 'ddd', d: 'dddd'} 
] 

var mat=[{ 
    value1: 'xxxx' 
    value2: 'yyyy' 
    value3: 'zzzz' 
    matSubc: ['aaa','ccc'] 
}] 

и я хочу, чтобы отфильтровать SUBC из значений mat.matSubc для получения результата

result=[ 
    { r: 'aaa', d: 'ddda'}, 
    { r: 'ccc', d: 'dddc'} 
] 

Может кто-нибудь помочь мне, пожалуйста ?

ответ

2
var result = subc.filter(function(v){ 
    return mat[0].matSubc.indexOf(v.r) >= 0; 
}); 

При этом используется метод .filter() для проверки каждого объекта в массиве subc для его r ключа внутри от matSubc массива. Если он существует, он возвращает весь объект.