当前位置: 首页 > 知识库问答 >
问题:

检查条件是否匹配Javascript中数组的任何值[重复]

顾乐家
2023-03-14

检查条件是否与数组中的任何值匹配的最佳方法是什么?

例如,如果收到5xx错误,我想实现重试逻辑。

  var searchUserRequest = httpClient.request(searchUserRequestOptions, (res => {
    if(res.statusCode ===  500 || res.statusCode ===  501 || res.statusCode ===  502) {
      process.stdout.write('HELLO!!!!!! ');

      }

  }));

理想情况下,我想把所有5xx错误都放在一个列表或数组中,然后检查res.status代码是否等于任何5xx错误代码。

在Javascript中实现这一点的最佳方法是什么?我可以不用循环吗?

共有3个答案

邴和雅
2023-03-14

如果需要ES5兼容的代码,可以使用数组#indexOf(返回数组中元素的索引,如果数组中不存在元素,则返回-1)例如:

var searchUserRequest = httpClient.request(searchUserRequestOptions, (res => {
    if([500, 501, 502].indexOf(res.statusCode) !== -1) {
        process.stdout.write('HELLO!!!!!! ');
    }
}));

如果你可以使用ES7,你可以使用Array#includes

var searchUserRequest = httpClient.request(searchUserRequestOptions, (res => {
    if([500, 501, 502].includes(res.statusCode)) {
        process.stdout.write('HELLO!!!!!! ');
    }
}));

如果您确定不需要检查500中的任何值,您可以使用500

皮承基
2023-03-14

理想情况下,我想把所有5xx错误都放在一个列表或数组中,然后检查res.status代码是否等于任何5xx错误代码。

您可以将statusCode转换为字符串,并检查它是否以5开头

var searchUserRequest = httpClient.request(searchUserRequestOptions, (res => {
  if (res.statusCode.toString().startsWith('5')) {
    process.stdout.write('HELLO!!!!!! ');

  }
}));
潘泳
2023-03-14

为什么不检查statusCode是否在500和511之间(这看起来是范围)?数组是多余的。

var searchUserRequest = httpClient.request(searchUserRequestOptions, (res => {
  if(res.statusCode >= 500 && res.statusCode <= 511) {
    process.stdout.write('HELLO!!!!!! ');
  }
}));
 类似资料:
  • 问题内容: 找出JavaScript数组是否包含值的最简洁,最有效的方法是什么? 这是我知道的唯一方法: 有没有更好,更简洁的方法来实现这一目标? 这与Stack Overflow问题密切相关。在JavaScript数组中查找项目的最佳方法?解决使用数组查找对象的问题indexOf。 问题答案: 现代的浏览器,这不正是这一点,得到广泛支持的人,除IE: 你也可以使用,它不太直接,但对于过时的浏览器

  • 问题内容: 找出JavaScript数组是否包含值的最简洁,最有效的方法是什么? 这是我知道的唯一方法: 有没有更好,更简洁的方法来实现这一目标? 这与Stack Overflow问题密切相关。 在JavaScript数组中查找项目的最佳方法?解决使用数组查找对象的问题。 问题答案: 现代的浏览器,这不正是这一点,得到广泛支持的人,除IE: 你也可以使用,它不太直接,但对于过时的浏览器不需要使用。

  • 开始时,所有标志均为0。我使用while循环来检查是否至少有一个元素的标志为0: 如果返回,那么我将继续处理我的列表: 实际上,我想在迭代my_list时移除元素,但不允许在迭代时移除项。 由于我无法在迭代时删除元素,所以我发明了这些标志。但是包含许多项,循环在每个循环中读取所有项,这会消耗大量时间!你有什么建议吗?

  • 问题内容: 我有一些文件: 我想要得到的结果,其匹配的任何值一样 在这种情况下,我想得到结果:一个数组: 我该怎么办?谢谢。 问题答案: 您应该看一下MongoDB 中的运算符。然后将它与find一起使用,以使您的请求更快,可以使用方法:使用它,mongoDB将返回JS对象而不是Mongoose模型/对象。 然后,您可以在结果数组上使用方法: 希望对您有帮助, 最好的问候

  • 我想让没有学过杰伦教授的任何课程的学生。从下面的表格中,所有的学生至少有一门课程是由杰伊教授的。因此,查询需要返回空值。 由于Phil()参加了Jay教授的课程,我原本以为它会返回空记录。因为他有两门课程,由Gloria担任讲师,所以它会返回Phil。我不知道如何从一组类似记录(相同,不同)中检查任何记录是否与某个

  • 我想检查我的数组是否包含值输入,我想要类似的东西,有人知道如何做吗?