我有两个数组要比较,并检查其中一个数组中是否有已删除的项目。如果有区别,请告诉我(已删除的项目)

这是下面我想如何实现的代码:

function compareFilters (a1, a2) {
     var a = [], diff = [];

     for (var i = 0; i < a1.length; i++) {
          a[a1[i]] = true;
     }

     for (var i = 0; i < a2.length; i++) {
        if (a[a2[i]]) {
          delete a[a2[i]];
        } else {
           a[a2[i]] = true;
        }
      }

      for (var k in a) {
        console.log('k', k);
        diff.push(k);
      }

      return diff;
}

console.log(filters);

console.log(filters, queryBuilderFilters, compareFilters(queryBuilderFilters, filters));


这将记录两个看起来像这样的数组:

[
 0: {
    id: "AggregatedFields.ReturnOnAdSpend",
    label: "ROAS (Return on Ad Spend)",
    type: "integer",
    description: "The ROAS (Return on Ad Spend)."
},
1: {
    id: "AggregatedFields.ROIExcludingAssisted",
    label: "ROI excl. assisted",
    type: "integer",
    description: "The ROI excluding any assisted values.
}
]


compareFilters函数的输出为0: "[object Object]"

如何在此函数中返回对象的标签?

最佳答案

这个例子说明了你想要什么

var completedList = [1,2,3,4,7,8];
var invalidList = new Set([3,4,5,6]);
// filter the items from the invalid list, out of the complete list
var validList = completedList.filter((item) => {
  return !invalidList.has(item);
})
console.log(validList); // Print [1,2,7,8]

// get a Set of the distinct, valid items
var validItems = new Set(validList);

关于javascript - 将两个数组与对象进行比较,并显示删除了哪个项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52519222/

10-14 18:27
查看更多