我想使用关键字搜索字符串。
我已经通读 this一百万次,但这只是检查单词是否完全匹配。我希望它是一个关键字搜索,所以它只会寻找相似之处而不是精确的。因此,如果函数的输入是 "foo"
并且数组是 ["FoOfy", "Looky"]
,我希望结果是 FoOfy 的位置.
这是我到目前为止所拥有的。
for (const x in server.queue) {
if(server.queue.includes(x.toLowerCase())) {
console.log(x.name);
}
}
但正如我一直提到的,这只检查是否准确。我正在考虑修补所有空间,但我认为这效果不太好。
那么,如何在数组中搜索关键字?
编辑: 看来我解释得不够,或者我的代码没有意义。
为了把事情弄清楚一点,让我解释一下我想要做什么。
我有一个充满对象的数组。每个对象都有一个名为 title
的属性。我想搜索所有对象,寻找使用关键字匹配的部分。
数组看起来像这样 [{网址:'https://www.youtube.com/watch?v=mX-SktWVHao ',标题:'Elektronomia - 火',缩略图:' https://i.ytimg.com/vi/mX-SktWVHao/hqdefault.jpg ',持续时间:191,请求:'<@236279900728721409>',播放:false},{ url:'https://www.youtube.com/watch?v=fzNMd3Tu1Zw ',标题:'Elektronomia - Energy[NCS 版本]',缩略图:'https://i.ytimg.com/vi/fzNMd3Tu1Zw/hqdefault.jpg ',持续时间:199,请求:'<@236279900728721409>',播放:false}]
最佳答案
尝试array .findIndex()
method ,它使用您提供的函数测试每个数组项,因此您可以编写您喜欢的任何测试(我使用了 string .includes()
method ):
const anArray = ['blah', 'foOfy', 'hello']
const keyword = 'foo'
const position = anArray.findIndex(el => el.toLowerCase().includes(keyword))
console.log(position) // 1, the index of 'foOfy'
这将返回第一个匹配元素的索引,如果没有元素匹配,则返回 -1。
(我没有尝试将上述内容放入问题中显示的循环中,因为该循环对我来说没有意义:您在同一对象上调用 .includes()
您正在迭代的数组?)
关于javascript - Node.js v8.0.0 - 使用关键字搜索数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47117521/