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