我有以下数据。我希望能够有效过滤掉sites数组中所有没有匹配的segmentCodesegmentCodes数组中的对象。我可以使用dojo或本机javascript,但无权访问任何其他库。

var segmentCodes = ["10", "20","30","40"];
var sites = [
    {"siteid":1, "segmentCode":"10"},
    {"siteid":2, "segmentCode":"10"},
    {"siteid":3, "segmentCode":"20"},
    {"siteid":4, "segmentCode":"30"},
    {"siteid":5, "segmentCode":"70"},
    {"siteid":6, "segmentCode":"999"}];


结果应如下所示:


  [{“ siteid”:5,“ segmentCode”:“ 70”},{“ siteid”:6,“ segmentCode”:“ 999”}]


提前致谢。

最佳答案

尝试使用Array.filterArray.indexOf

var res = sites.filter(function( o){
  return segmentCodes.indexOf(o.segmentCode) == -1;
});


Demo

09-25 17:28