2017-02-16 61 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'] 
}] 

,我想从mat.matSubc的值来过滤SUBC以获得结果

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阵列中的每个对象针对其在matSubc阵列的内部r键。如果存在,它将返回整个对象。