Javascript 检查一个数组是否是另一个数组的子集(但检查属性)

Javascript 检查一个数组是否是另一个数组的子集(但检查属性),javascript,jquery,arrays,function,object,Javascript,Jquery,Arrays,Function,Object,我知道这是有效的(返回true) 但是,假设array1由对象组成,我想根据对象的某个属性检查array2: var object1 = {name:'one'} var object2 = {name:'two'} var object3 = {name:'three'} var arr1 = [object1,object2,object3]; var arr2 = ['one','two']; var isSuperset = arr2.every(function (val) { re

我知道这是有效的(返回true)

但是,假设array1由对象组成,我想根据对象的某个属性检查array2:

var object1 = {name:'one'}
var object2 = {name:'two'}
var object3 = {name:'three'}

var arr1 = [object1,object2,object3];
var arr2 = ['one','two'];
var isSuperset = arr2.every(function (val) { return arr1.indexOf(val) >= 0; });

如何确保each函数检查name属性?

var arr3=arr1.map(函数(val){return val.name;})
并且在
arr2.each的预测中,使用
return arr3.indexOf(val)>=0。哦,你更快了,同样的解决方案,向上投票
var object1 = {name: 'one'};
var object2 = {name: 'two'};
var object3 = {name: 'three'};

var arr1 = [object1,object2,object3];
var arr2 = ['one','two'];

// solution
var names = arr1.map(function(obj) { 
  return obj.name; 
});

var isSuperset = arr2.every(function(val) { 
  return names.indexOf(val) >= 0;
});

alert(isSuperset);
var object1 = {name: 'one'};
var object2 = {name: 'two'};
var object3 = {name: 'three'};

var arr1 = [object1,object2,object3];
var arr2 = ['one','two'];

// solution
var names = arr1.map(function(obj) { 
  return obj.name; 
});

var isSuperset = arr2.every(function(val) { 
  return names.indexOf(val) >= 0;
});

alert(isSuperset);