2015-09-04 61 views
2
var myArray = [{ 
    "name": "John Doe", 
    "age": 29 
}, { 
    "name": "Anna Smith", 
    "age": 24 
}]; 

var myAnotherArray = [{ 
    "name": "John Doe", 
    "age": 29 
}, { 
    "name": "Anna Smith", 
    "age": 24 
}, { 
    "name": "Peter Jones", 
    "age": 39 
}, { 
    "name": "Gabby", 
    "age": 24 
}, { 
    "name": "Julian", 
    "age": 29 
}, { 
    "name": "George", 
    "age": 39 
}]; 

欲extact從第一陣列中的所有年齡的值,然後從第二陣列過濾的年齡提取的值。提取鍵值從與所提取的值的其他對象具有下劃線的javascript

回答

1

您可以使用pluckmyArray獲取所有age的數組。 然後你可以使用filter,根據年齡過濾另一個數組。

Demo

var myArray = [{ 
 
    "name": "John Doe", 
 
    "age": 29 
 
}, { 
 
    "name": "Anna Smith", 
 
    "age": 24 
 
}]; 
 

 

 
var myAnotherArray = [{ 
 
    "name": "John Doe", 
 
    "age": 29 
 
}, { 
 
    "name": "Anna Smith", 
 
    "age": 24 
 
}, { 
 
    "name": "Peter Jones", 
 
    "age": 39 
 
}, { 
 
    "name": "Gabby", 
 
    "age": 24 
 
}, { 
 
    "name": "Julian", 
 
    "age": 29 
 
}, { 
 
    "name": "George", 
 
    "age": 39 
 
}]; 
 

 
var ages = _.pluck(myArray, 'age'); 
 

 
var filtered = _.filter(myAnotherArray, function(i, l) { 
 
    return _.contains(ages, i.age); 
 
}); 
 
console.log(filtered); 
 
document.write(JSON.stringify(filtered));
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>