在 node.js 中的数组内查找字符串的最佳方法是啥?
Posted
技术标签:
【中文标题】在 node.js 中的数组内查找字符串的最佳方法是啥?【英文标题】:what is the best way to find string inside array in node.js?在 node.js 中的数组内查找字符串的最佳方法是什么? 【发布时间】:2016-04-30 18:46:38 【问题描述】:我有一个 node.js 脚本,我想在其中查找给定字符串是否包含在数组中。 我该怎么做?
谢谢。
【问题讨论】:
我不明白你的问题?您想在数组中查找字符串吗?请更好地描述你的问题。一个评论的例子会很有帮助。您的小提琴中的一些 cmets 也有助于找出您想知道的内容。 编辑。有时间请再看一遍。 【参考方案1】:如果我理解正确,您正在寻找数组中的字符串。
一种简单的方法是使用indexOf()
函数,它为您提供找到字符串的索引,或者在找不到字符串时返回-1。
例子:
var arr = ['example','foo','bar'];
var str = 'foo';
arr.indexOf(str); //returns 1, because arr[1] == 'foo'
str = 'whatever';
arr.indexOf(str); // returns -1
编辑 19/10/2017
ES6 的引入给了我们:
arr.includes('str') //true/false
【讨论】:
嘿,谢谢。但是,如果我希望字符串是来自用户的 var 怎么办?另外,我在哪里将匹配的代码放在我的函数中?看看jsfiddle。我是 node.js 的新手,所以感谢您的帮助。 在这种情况下,var str = process.argv[2]
应该可以解决问题
尝试这样做:jsfiddle.net/eyal4/qe0r1z26,它给了我一个错误。我还希望它打印完整的 str - 尤其是包含此 str 的 evrey 字符串。我想这有点难,但感谢您的帮助!我怎样才能把它弄干净?【参考方案2】:
在 NodeJS 中,如果您希望匹配字符串数组中的部分字符串,您可以尝试以下方法:
const strings = ['dogcat', 'catfish']
const matchOn = 'dog'
let matches = strings.filter(s => s.includes(matchOn))
console.log(matches) // ['dogcat']
编辑: 应要求如何在提供的上下文小提琴中使用:
var fs = require('fs');
var location = process.cwd();
var files = getFiles('c:/Program Files/nodejs');
var matches = searchStringInArray('c:/Program Files/nodejs/node_modules/npm/bin', files);
console.log(matches);
function getFiles (dir, files_)
var str = process.argv[2];
files_ = files_ || [];
var files = fs.readdirSync(dir);
for (var i in files)
var name = dir + '/' + files[i];
if (fs.statSync(name).isDirectory())
getFiles(name, files_);
else
files_.push(name);
return files_;
function searchStringInArray (find, files_)
return files_.filter(s => s.includes(find))
【讨论】:
嘿,谢谢。但是,如果我希望字符串是来自用户的 var 怎么办?另外,我在哪里将匹配的代码放在我的函数中?看看jsfiddle。我是 node.js 的新手,所以感谢您的帮助。 把它放在一个函数中。我正在返回匹配列表,而不是像你一样的数字。不知道你是不是这个意思。 好的,谢谢,但我一直在努力做到这一点jsfiddle.net/eyal4/qe0r1z26/1 就像你说的那样,那不是什么都不打印。我如何打印包含该字符串的 evrey 字符串以及我在哪里将它放在我的代码中。再次感谢【参考方案3】:另一种方法是使用some
players = [];
const found = this.players.some(player => player === playerAddress);
if (found)
// action
else
// action
【讨论】:
以上是关于在 node.js 中的数组内查找字符串的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
在node.js中查找两个地理点(lats,longs)之间距离的最佳方法
讨论:使用 node.js / socket.io 实现聊天室的最佳方式?
Node.JS + MongoDB聚合从MongoDB中的DataBase中查找数组中的数组