搜索数组中至少有1个匹配项并返回true

时间:2019-06-05 10:13:45

标签: javascript typescript

我需要测试我的JSON响应,以确保至少1个对象包含isKey:true值,此时hasKey的全局变量设置为true。

我相信在这种情况下,某些方法会有所帮助,但它似乎只能在本地级别进行测试,因此,如果我在console.log中得到:true,false,true,true ...等等

我只想确定整个模型的正确或错误。

在下面您可以看到工作功能的基础,但我认为它并不有效,因此,在改进此功能方面会得到任何建议。

 checkKeys() {

    let checkTest: boolean = false;

    this.modalData.columnPermissions.some(function (item) {

      if (item.isKey) {
        checkTest = true;
      }
    });

    this.modalData.hasKey = checkTest;

  }

2 个答案:

答案 0 :(得分:1)

您使用的功能正确,只是您在错误地使用它。

this.modalData.hasKey = this.modalData.columnPermissions.some(function (item) {
  return item.isKey;
});

'some'函数获取返回值,并在返回真值后立即停止运行。

'every'函数获取返回值,并在返回false时立即停止运行。

答案 1 :(得分:1)

您可以直接分配some的结果。

checkKeys() {
    this.modalData.hasKey = this.modalData.columnPermissions.some(function (item) {
        return item.isKey;
    });
}