2014-01-24 38 views
3

我有值的數組:下劃線如何使用多個值過濾對象?

var removeAge = ['7', '8', '5', '11']; 

,我想過濾的對象,這是不包含在他們的年齡屬性的「removeAge」值

像:

var array = [ 
    {'name':'one', "age":'3'}, 
    {'name':'two', "age":'1'}, 
    {'name':'three', "age":'3'}, 
    {'name':'four', "age":'1'}, 
    {'name':'one', "age":'7'}, 
    {'name':'one', "age":'5'}, 
    {'name':'one', "age":'7'}, 
    {'name':'one', "age":'8'}, 
    {'name':'one', "age":'7'}, 
    {'name':'one', "age":'11'}, 
    {'name':'one', "age":'7'} 
] 

我怎樣才能刪除對象,其中包含'removeAge'的年齡之一包含?所以結果成爲像這樣的對象:

var array = [ 
    {'name':'one', "age":'3'}, 
    {'name':'two', "age":'1'}, 
    {'name':'three', "age":'3'}, 
    {'name':'four', "age":'1'}, 
] 

我試過這樣,但沒有結果:完全錯誤!

_.each(remove, function(val) { 
    return _.filter(array, function(){ 
     return item.age != val 
    }) 
}) 

任何一個幫我排序呢?

回答

4

可否這樣來完成:

_.reject(array, function(item){ return removeAge.indexOf(item['age']) != -1; }); 
+2

有點更習慣的方法: '_.filter(數組,函數(項目){返回_.contains(removeAge,item.age)} )' –

1
jQuery.map(removeAge, function (n, i) { 
        array = jQuery.grep(array, function (value) { 
         return value.age != n; 
        }); 

       });