gpt4 book ai didi

javascript - 字符串行中最快的搜索

转载 作者:行者123 更新时间:2023-12-03 07:43:39 25 4
gpt4 key购买 nike

我有数据行(第一行是标题,其余行是数据)作为单个参数传递给我的函数:

"id,first,last,email\n" + 
"555,John,Doe,jd@gmail.com\n" +
"666,Jason,scott,js@gmail.com\n" +
.......

我想在这些行中搜索电子邮件值。如果我找到它,我应该返回完整的行。所以我只需要寻找每行中的第四个元素。

我正在考虑类似的事情:

function search(data, key) {  
var arr = text.split('\n'); /// convert data to array

return function (value) {
for (var i = 1; i < arr.length; i++) {
var dataLine = arr[i].split(','); /// "666,Jason,scott,js@gmail.com\n" to array
if (dataLine[keyIndex] === value) { /// found match between value and id
return "found";
}
}
return "not found";
}
}

最快的搜索方式是什么?

每次循环迭代中将每一行转换为数组是否被认为是浪费?

谢谢。

最佳答案

您只需查看每个 arr 项中的last 元素。因此,可以通过避免 split() 调用来加速内部函数:

function(value) {  
for (var i = 1; i < arr.length; i++) {
var item = arr[i];
if (item.substr(item.lastIndexOf(',')+1) === value) {
return "found";
}
}
return "not found";
}

顺便说一句,for 循环从 1 开始 i 以忽略 header 。

关于javascript - 字符串行中最快的搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35299379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com