varconst result = A2.filter(function(o) {
return A1.indexOf(o.value) > -1;
});
varconst result = A2.filter(o => A1.includes(o.value));
Try it in this snippet:
var A1 = ["1","2","3","4"];
var A2 = [
{label:"one", value:"1"},
{label:"two", value:"2"},
{label:"three", value:"3"},
{label:"four", value:"4"},
{label:"five", value:"5"},
{label:"six", value:"6"},
];
const result = A2.filter(o => A1.includes(o.value));
console.log('result', result);
If you wanted to use Underscore.js, _.filter()_.filter() and _.includes()_.includes() could be used to filter out any object in A2 without a value for the value property contained in A1. Expand the snippet below for a demonstration.
var A1 = ["1","2","3","4"];
var A2 = [
{label:"one", value:"1"},
{label:"two", value:"2"},
{label:"three", value:"3"},
{label:"four", value:"4"},
{label:"five", value:"5"},
{label:"six", value:"6"},
];
varconst result = _.filter(A2, function(o) { return _.includes(A1, o.value);});
console.log('result', result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
There is an Underscore helper _.pluck()_.pluck() but that is used to collect a value from each item in a collection at a given property (similar to Array.prototype.map().
Lodash also has the same helpers: _.filter()_.filter() and _.includes()_.includes().
var A1 = ["1","2","3","4"];
var A2 = [
{label:"one", value:"1"},
{label:"two", value:"2"},
{label:"three", value:"3"},
{label:"four", value:"4"},
{label:"five", value:"5"},
{label:"six", value:"6"},
];
varconst result = _.filter(A2, function(o) { return _.includes(A1, o.value);});
console.log('result', result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>