首页 > 解决方案 > 包括函数迭代javascript中的所有数组

问题描述

我有一个代码,它遍历一个对象数组并检查它是否包含管理词。如果它包含,那么我想调用管理 API,如果没有,那么我想调用非管理 API。代码工作正常,但问题是在迭代时说权限包含 5 个对象,第 3 个索引包含管理关键字,然后逻辑调用 2 个非管理 api 和 1 个管理 api,然后再次调用 2 个非管理 api。有没有更好的方法来编写逻辑将检查整个数组是否包含 admin 关键字并且只调用一次 admin API 或 Non-Admin API 的代码。

if (tempAuth && tempAuth.length > 0) {
      this.auth = tempAuth.filter(x => {
        if (x.authority.includes('admin')) {
            // Admin API
            this.getalldetails();
          }
         else {
          // Non Admin API
           this.getUserdetails();
         }
      });

标签: javascriptangulartypescript

解决方案


一种选择是使用该some方法检查是否满足身份验证条件。然后,您可以使用该布尔值来确定下一步要做什么。

if (tempAuth && tempAuth.length > 0) {
  this.auth = tempAuth.some(x => x.authority.includes('admin'));
  if (this.auth) {
    this.getalldetails();
  } else {
    this.getUserdetails();
  }
}

推荐阅读