Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 查找数组列表中的第一个匹配项_Javascript_Arrays_Ecmascript 6 - Fatal编程技术网

Javascript 查找数组列表中的第一个匹配项

Javascript 查找数组列表中的第一个匹配项,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,我只是写了下面的代码来查找数组列表中的第一个匹配项。有什么有效的方法吗 function hasName(names, req) { let state = 'pending'; for(let i in names) { if(req.indexOf(names[i]) !== -1) { state = 'init'; break; } } return state; } hasName(['A', 'B', 'C'

我只是写了下面的代码来查找数组列表中的第一个匹配项。有什么有效的方法吗

function hasName(names, req)
{
  let state = 'pending';

  for(let i in names)
  {
    if(req.indexOf(names[i]) !== -1)
    {
      state = 'init';

      break;
    }
  }

  return state;
}

hasName(['A', 'B', 'C'], ['B', 'D']);

names.someitem=>req.includeItem


如果在2个数组中发现任何相同元素的出现,则返回true,否则返回false,希望这对您有用

const hasName = (names, req) => names.some(name => req.includes(name)) ? 'init' : 'pending';

hasName(['A', 'B', 'C'], ['B', 'D']);

因此,如果在req中找到名称中的任何项,您是否返回“init”?如果你能提供一个简短的说明,说明你所期望的是什么,这将是很有帮助的。现在,您的代码正在检查匹配项,但我看不出它是否与第一次出现相关。一般来说,查找数组中第一个出现的项的最简单方法是使用类似于array.find的东西,或者使用array通过索引来获取它。indexOf@TylerRoper这是正确的。我正在查找req中与名称匹配的任何单个项。“第一次出现”表示第一个找到的请求项。@Qurimmo它工作正常,非常简单,谢谢!很好的解决方案,但正如泰勒所说,最好使用更多受支持的本机函数,如Array.find和Array.indexOf