因此,我有一个数组["miranda","brad","johnny"],我想检查数组中的值是否等于米兰达,或者约翰,甚至布拉德返回一次,而不是三次返回,如果有一个或多个名称存在,如果没有,它会显示一个错误,如果这个数组中还有其他值。现在,为了使我的示例更清楚,这里有一个代码片段,它代表了我所想的:
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) { // .. }),但这并不能解决我的问题。你有什么想法吗?提前谢谢。
发布于 2020-01-04 16:36:49
您可以结合使用Array#every和Array#includes。
var array = ["miranda", "brad", "johnny"],
needed = ["brad", "miranda", "john"];
console.log(array.every(s => needed.includes(s)));
发布于 2020-01-04 16:43:38
let array = ["miranda","brad","johnny"]
array.forEach(item =>
console.log(["brad", "miranda", "john"].includes(item) ? "success" : "fail")
);
发布于 2020-01-04 16:47:11
上面的答案涵盖了解决方案,但是您只需要使用Array#some而不是Array#every -
var array = ["miranda", "brad", "johnny"],
needed = ["brad", "miranda", "john"];
console.log(array.some(s => needed.includes(s)));
https://stackoverflow.com/questions/59592678
复制相似问题