我有和数组包含超过10 000个值,并且某种方式lodash
方法includes
停止工作。
数组的例子:
['888888111118888',
'7771117717717771']
我的方法(不工作)但昨天也在工作(数组中的值较少)
toFind = '7771117717717771'; // this is just for example
return _.includes(arr, toFind);
并且无论toFind
是否在数组中,该方法都返回“false”。有什么建议吗?
修改
所以这就是我现在注意到的:
console.log(data.memberList.members[0].steamID64[7]);
toFind = data.memberList.members[0].steamID64[7];
console.log(_.findIndex(data.memberList.members[0].steamID64, toFind));
并回复:
999999999999
-1
那怎么可能呢?
答案 0 :(得分:0)
Array.prototype.findIndex示例:
let arr = [ "123", "456" ];
let index = arr.findIndex ( x => { return x === "123" } );
这将返回0(第一个索引“123”)。如果你有对象:
let arr = [ { val : "123" }, { val : "456" } ];
let index = arr.findIndex ( x => { return x.val === "123" } );
等等。如果你得到-1,你的匹配器是错的,或者它不在数组中。
我非常尊重lodash,但随着我们越来越多的本地功能,如地图,集合,以及其他功能更高阶的功能(filter,map,reduce,findIndex等),我发现我使用它了减少。
答案 1 :(得分:0)
Array.prototype.find
let result = arr.find(r => r ==='7771117717717771');
如果定义了结果,则它存在于数组中。如果您正在寻找运行速度超过O(n)时间的操作,您应该研究其他数据结构,例如地图或树