首页 > 解决方案 > 在数组中搜索至少 1 个匹配项并返回 true

问题描述

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

我相信 SOME 方法在这种情况下会有所帮助,但它似乎只在本地级别进行测试,所以如果我 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;

  }

标签: javascripttypescript

解决方案


你有正确的功能,你只是用错了。

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

'some' 函数获取返回值并在一个为真时立即停止运行。

'every' 函数获取返回值并在其中一个为 false 时立即停止运行。


推荐阅读