检查一个对象数组是否是另一个对象数组的子集[关闭]

2024-01-13

这就是我正在尝试的。

var object1 = {name: 'one', psno:'34'};
var object2 = {name: 'two', psno:'34'};
var object3 = {name: 'three', psno:'345'};
var arr1 = [object1,object2,object3];
var arr2 = [object1,object2];
// solution
var names = arr1.map(function(obj) { 
  return obj.name; 
});
var isSuperset = arr2.every(function(val) { 
  return names.indexOf(val) >= 0;
});
alert(isSuperset);

它返回 false 而不是 true。我哪里出错了。


那是因为你没有做.name检查时.indexOf

var object1 = {
  name: 'one',
  psno: '34'
};
var object2 = {
  name: 'two',
  psno: '34'
};
var object3 = {
  name: 'three',
  psno: '345'
};
var arr1 = [object1, object2, object3];
var arr2 = [object1, object2];
// solution
var names = arr1.map(function(obj) {
  return obj.name;
});
var isSuperset = arr2.every(function(val) {
//Ive changed this line!
  return names.indexOf(val.name) >= 0;
});
alert(isSuperset);

JS 小提琴在这里:https://jsfiddle.net/waqmafsa/ https://jsfiddle.net/waqmafsa/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查一个对象数组是否是另一个对象数组的子集[关闭] 的相关文章

随机推荐