【发布时间】:2017-02-09 17:20:59
【问题描述】:
我有一个包含超过 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
那么这怎么可能呢?
【问题讨论】:
-
这可能是一个错字,但在您的示例中,数组包含字符串,
toFind是一个数字。 -
就像我之前所说的,这只是一个例子,
toFind与对象元素的表达式完全相同 -
如果您提供示例,请确保它们反映您所拥有的。你不能在不工作的代码上挥手致意,并期望我们知道哪些错误是真实的,哪些不是。使示例以与当前代码相同的方式精确失败。
-
谢谢,修正了所有的错别字!
-
Array.prototype.findIndex 有什么问题吗?它为您提供匹配的索引,因此您可以进行 O(1) 查找。你可以匹配任何东西,例如findIndex ( x => return x.someval === 'whatever' ),它返回索引或 -1 然后你只需执行 myArr [ theIndex ]。
标签: javascript arrays object lodash