Javascript 使用2个对象数组,使用类似于IndexOf(或其他选项)的内容对其进行迭代

Javascript 使用2个对象数组,使用类似于IndexOf(或其他选项)的内容对其进行迭代,javascript,Javascript,我有一个对象数组,我试图迭代。数组的格式非常简单 {a:5, b:"key", c:19} 我试图将数组与子集进行比较,比如:[{a:5},…] for (var i = 0; i < subset.length; i++) { var searchTerm = subset[i].a; var index = objs.indexOf(searchTerm, function (el) { return el.a; }); if (i

我有一个对象数组,我试图迭代。数组的格式非常简单

{a:5, b:"key", c:19}
我试图将数组与子集进行比较,比如:[{a:5},…]

for (var i = 0; i < subset.length; i++) {
    var searchTerm = subset[i].a;

    var index = objs.indexOf(searchTerm, function (el) {
        return el.a;
    });

    if (index > -1) {
        objs[index].Found = true;
    }
}
而不是我试图与之合作的想法

编辑

这里有一些代码,我必须让它工作,但我认为有一个更有效的方法来做它比书面

for (var j = 0; j < compare.length; j++){
  var searchTerm = compare[j]["a"];
  for (var k = 0; k < objs.length; k++){
      if (!objs[k].Found && objs[k]["a"] == searchTerm){
           objs[k].Found = true;
          break;
      }
  } 
}

如果有多个对象匹配怎么办?从什么时候开始indexOf将函数作为第二个参数?@Adam它没有。如果我理解正确的话,问题是如何做这样的事情。有很多方法可以在接受回调的数组上使用:map、some、every等。我认为它不会比编辑中的示例更有效。在JS中有很多方法可以重构它,但我认为你永远也无法击败array1.length*array2.length迭代。
for (var j = 0; j < compare.length; j++){
  var searchTerm = compare[j]["a"];
  for (var k = 0; k < objs.length; k++){
      if (!objs[k].Found && objs[k]["a"] == searchTerm){
           objs[k].Found = true;
          break;
      }
  } 
}