Javascript 查找数组中是否存在数字

Javascript 查找数组中是否存在数字,javascript,arrays,Javascript,Arrays,创建一个接受数字数组的函数,如果数组中出现数字7,则返回“Boom!”。否则,返回“数组中没有7” 测试 Test.assertEquals(sevenBoom([2, 6, 7, 9, 3]), "Boom!") Test.assertEquals(sevenBoom([33, 68, 400, 5]), "there is no 7 in the array") Test.assertEquals(sevenBoom([86, 48, 100, 66]), "there is no 7 in

创建一个接受数字数组的函数,如果数组中出现数字7,则返回“Boom!”。否则,返回“数组中没有7”

测试

Test.assertEquals(sevenBoom([2, 6, 7, 9, 3]), "Boom!")
Test.assertEquals(sevenBoom([33, 68, 400, 5]), "there is no 7 in the array")
Test.assertEquals(sevenBoom([86, 48, 100, 66]), "there is no 7 in the array")
Test.assertEquals(sevenBoom([76, 55, 44, 32]), "Boom!")
Test.assertEquals(sevenBoom([35, 4, 9, 37]), "Boom!")
最后两个测试都失败了,我假设是这样,因为它正在寻找一个
7
,而不仅仅是在数字中有一个
7

我怎样才能纠正这个问题

不是重复的


这与子字符串或字符串无关。为什么人们如此喜欢将事物标记为重复的?

这里有一种方法,可以将Regex与Array.prototype组合使用。join只匹配7个数字:

[35, 4, 9, 37,7].join().match(/\b7\b/) !== null
此操作仅搜索阵列中的7个

/\b7\b/
那么所需要的就是:

功能七舱(arr){
var has7=arr.join().match(/\b7\b/)!==null;
if(has7){返回“Boom!”}
return“数组中没有7个”
}
日志(七个房间([2,6,7,9,3],“轰!”)
log(sevenBoom([33,68400,5],“数组中没有7”))
log(sevenBoom([86,48,100,66],“数组中没有7”))
log(七个房间([76,55,44,32],“轰!”)

日志(七个房间([35,4,9,37],“轰!”)不带正则表达式的解决方案:
功能七舱(arr){
对于(让el代表arr){
if(el.toString().split(“”).includes('7')){
返回“轰!”
}
}
return“数组中没有7个”
}
日志(七个房间([2,6,7,9,3],“轰!”)
log(sevenBoom([33,68400,5],“数组中没有7”))
log(sevenBoom([86,48,100,66],“数组中没有7”))
log(七个房间([76,55,44,32],“轰!”)

日志(七个房间([35,4,9,37],“轰!”)
我们也可以使用
Array.prototype来执行此操作。一些
会在数组中的数字包含
7
后立即返回
true

功能七舱(arr){
if(arr.some(num=>`${num}`.includes('7')){
返回“轰!”
} 
return“数组中没有7个”
}
log(sevenBoom([2,6,7,9,3]))
日志(七个房间([33,68,400,5]))
日志(sevenBoom([86,48100,66]))
log(sevenBoom([76,55,44,32]))

log(sevenBoom([35,4,9,37]))
或者,在ES6表示法中走到了极端。“发现值7”:

[[2,6,7,9,3]、[33,68,400,5]、[86,48,100,66]、[76,55,44,32]、[35,7,9,37]]

.forEach(arr=>console.log(arr.toString(),arr.some(el=>el==7)?'boom,value==7':'nope')一年后,但试试这个

const sevenBoom = arr => /7/.test(arr) ? 'Boom!' : 'there is no 7 in the array';

arr.join().includes(7)
可以做你想做的事,而不需要麻烦的迭代
35,4,9,37
没有7@joyBlanks是的,在
37
includes中,您将获得项目的精确匹配,而不是项目的数字/字符。您在Jaromandaxy的评论中已经有了一个解决方案,您只需要找到一个数字是否包含“7”,对吗?
const sevenBoom = arr => /7/.test(arr) ? 'Boom!' : 'there is no 7 in the array';