Javascript 在js中查找并返回数组的第一个匹配元素

Javascript 在js中查找并返回数组的第一个匹配元素,javascript,arrays,Javascript,Arrays,我正在处理一个简单的函数,该函数应该使用for循环返回与我的条件匹配的数组的第一个元素。无论数组是否满足设置的条件,它都会不断返回数组的第一个元素。知道臭虫在哪里吗?我还尝试了.find()方法,同样的问题 function wheresTheBeef(array) { for (var i = 0; i < array.length; i++) { if (array[i] == 'fillet' || 'strip' || 'sirloin') { return

我正在处理一个简单的函数,该函数应该使用for循环返回与我的条件匹配的数组的第一个元素。无论数组是否满足设置的条件,它都会不断返回数组的第一个元素。知道臭虫在哪里吗?我还尝试了.find()方法,同样的问题

function wheresTheBeef(array) {
  for (var i = 0; i < array.length; i++) {
  if  (array[i] == 'fillet' || 'strip' || 'sirloin') {
      return array[i];
    }
    else {
      return 'there is no beef!'
    }
  }
}
函数(数组){
对于(var i=0;i
您的情况不正确,请更改此项:

if  (array[i] == 'fillet' || 'strip' || 'sirloin') {
对于这一个:

if  (array[i] == 'fillet' || array[i] == 'strip' || array[i] == 'sirloin') {
变更原因:

let var1=“something”;
if(var1){
log(“var1有一个真实值”);
}
如果(1==0 | |“某物”){
console.log(“条件为真”);

}
您需要使用字符串测试每个元素,因为每个非空字符串都是空的

与和几乎相同


因此,您只需要去掉第二个return语句(以及else)。只要
返回
,执行就会停止。因此,如果您从未返回,循环将继续,直到满足为止


如果您仍然需要
没有beef
语句,可以将其置于循环之外。如果循环执行且条件从未满足,则它将继续返回该语句。

这里有两个问题

  • 您的if检查是错误的,因为
    array[i]='fillet'| | | |'strip'| | | sirlain'
    将始终TRUE

  • 您不应该直接在else分支中返回,否则您的代码逻辑只检查第一个元素

  • 函数(数组){
    对于(var i=0;i}
    你能分享阵列内容吗?啊,我明白我的错误了。谢谢很高兴我能帮助你
    if (array[i] === 'fillet' || array[i] === 'strip' || array[i] === 'sirloin') {
    
    found = array.find(item => ['fillet', 'strip', 'sirloin'].includes(item));