javascript - Node.js v8.0.0 - 使用关键字搜索数组

标签 javascript arrays node.js search ecmascript-6

我想使用关键字搜索字符串。

我已经通读 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/

相关文章:

javascript - 使用验证引擎时成功功能不起作用

javascript - ASP.Net web 应用程序 Jquery Photoviewer 和 Ajaxical Update

javascript - Packery 网格布局 - 边框/填充和覆盖问题

java - 来自数组的 boolean 值 - java 中的函数,从命令行输入

node.js - 通过元素 ID 单击带有 puppeteer 的复选框

javascript - 映射对象、使用状态以及通过 setState 中的函数传递值

java - 数组索引越界

java - 为整数数组赋值时出现空指针异常

javascript - 什么时候应该使用错误优先回调?

node.js - 使用 request-promise 时无法设置 Koajs 的 ctx.status 和 ctx.body