首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较数组的多个可能值

比较数组的多个可能值
EN

Stack Overflow用户
提问于 2020-01-04 16:32:53
回答 3查看 48关注 0票数 1

因此,我有一个数组["miranda","brad","johnny"],我想检查数组中的值是否等于米兰达,或者约翰,甚至布拉德返回一次,而不是三次返回,如果有一个或多个名称存在,如果没有,它会显示一个错误,如果这个数组中还有其他值。现在,为了使我的示例更清楚,这里有一个代码片段,它代表了我所想的:

代码语言:javascript
复制
let array = ["miranda","brad","johnny"]
for(var i = 0; i < array.length;i++){
  if(array[i] == "brad" || array[i] == "miranda" || array[i] == "john"){
  console.log("success")
 } else{ 
 console.log("fail");
 break;
 }
}

现在我的目标是简化和缩短这段代码,只留下一行条件,我已经在if(["brad","miranda","john"].indexOf(array) > -1) { // .. }中尝试过这种技术(if(["brad","miranda","john"].indexOf(array) > -1) { // .. }),但这并不能解决我的问题。你有什么想法吗?提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-01-04 16:36:49

您可以结合使用Array#everyArray#includes

代码语言:javascript
复制
var array = ["miranda", "brad", "johnny"],
    needed = ["brad", "miranda", "john"];
    
console.log(array.every(s => needed.includes(s)));

票数 3
EN

Stack Overflow用户

发布于 2020-01-04 16:43:38

代码语言:javascript
复制
let array = ["miranda","brad","johnny"]

array.forEach(item =>
  console.log(["brad", "miranda", "john"].includes(item) ? "success" : "fail")
);

票数 0
EN

Stack Overflow用户

发布于 2020-01-04 16:47:11

上面的答案涵盖了解决方案,但是您只需要使用Array#some而不是Array#every -

代码语言:javascript
复制
var array = ["miranda", "brad", "johnny"],
    needed = ["brad", "miranda", "john"];
    
console.log(array.some(s => needed.includes(s))); 

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59592678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档