Javascript搜索和过滤项目

时间:2017-02-16 19:24:12

标签: javascript arrays javascript-objects

我有这个......

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的值中过滤子句以获得结果

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

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

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

这使用.filter()方法检查subc数组中每个对象的r数组内的matSubc键。如果存在,则返回整个对象。