Reputation: 1089
I have an array of objects like this:
myArray = [
{label: "a",
value: "100"},
{label: "b",
value: "101"},
{label: "c",
value: "102"}
...
I want to filter it like this:
myArrayFiltered = myArray.filter(function(v){
return v["value"] == "101" || v["value"] == "102"});
Which will return
myArrayFiltered = [
{label: "b",
value: "101"},
{label: "c",
value: "102"}]
in this example but I want to do the filter with an array of values. How can I do that ?
Upvotes: 7
Views: 7501
Reputation: 3122
Just check if the value you're filtering on is in your array
myArrayFiltered = myArray.filter(function(v){
return ["102", "103"].indexOf(v.value) > -1;
});
Upvotes: 5
Reputation: 21
var arrValues = ["101", "102"];
var result = getData(arrValues,"102")
function getData(src, filter) {
var result = jQuery.grep(src, function (a) { return a == filter; });
return result;
}
Upvotes: 0
Reputation: 78525
You could use the .some method inside your filter:
var requiredValues = ["101", "102", "103"];
myArrayFiltered = myArray.filter(function(v){
return requiredValues.some(function(value) {
return value === v.value;
});
});
Upvotes: 0