当要比较的对象为空时如何使用过滤器?

时间:2018-11-03 16:27:08

标签: javascript

我正在遍历我的数据对象,有另一个对象(“ compareTask”),并使用过滤器方法在数据中返回该对象,其中id与要比较的对象中的id不匹配。

我保持(如果它是一个空对象或没有说ID,显然会得到“无法读取未定义的属性'0'”。我不能真正放置一个if / else并检查它是否是一个空对象,因为那恰好是我想回国的情况下,任何帮助都会很棒!谢谢!

  var data = {
    names: [
      { name: "mike", taskID: 1 },
      { name: "nat", taskID: 2 }
    ],
    jobs: [
      { name: "aaa", taskID: 3 },
      { name: "bbb", taskID: 4 }
    ],
    cities: [
      { name: "london", taskID: 5 },
      { name: "new york", taskID: 6 }
    ]
  }

  var compareTask = {
    triggers: [
      { name: "Plumbing", taskID: 9 },
      { name: "FireDepartment", taskID: 4 }
    ]
  }

  data.names.filter((item, index) => {
      return item.taskID !== compareTask.names[index].taskID
  })

1 个答案:

答案 0 :(得分:1)

您可以使用Array#every进行过滤,仅获取不包含taskID的{​​{1}}的元素。

compareTask