Lodash findIndex无效

时间:2015-08-21 09:43:52

标签: javascript lodash

为什么lodash在这里返回-1?它显然在那里?

Ignores = ['load', 'test', 'ok'];
alert(_.findIndex(Ignores, 'ok') );

2 个答案:

答案 0 :(得分:16)

那是因为findIndex()将数组和谓词作为参数,一个根据某些条件返回布尔值的函数。

假设您在needle中搜索haystack,您可以使用普通的JavaScript实现您想要的效果:

alert(haystack.indexOf(needle));

您可以使用_.indexOf(来自@Juhana):

alert(_.indexOf(haystack, needle))

您也可以使用_.findIndex执行此操作:

alert(_.findIndex(haystack, function(x) { return x === needle; }));

或:

alert(_.findIndex(haystack, _(needle).isEqual));

答案 1 :(得分:0)

loadash _.findIndex 可以按JSON结构的不同顺序很好地工作。如果您想基于嵌套结构获取数组对象的索引。lodash提供了相同的功能特殊的方法。

假设您的JSON结构是否像下面提到的模式一样。 lstMainArray: [{searhName:'Abc1',searchName:'Abc2'}]

,您想从嵌套的JSNO中搜索,例如:

searchObject: {   searchField:{    searchName:'Abc1'   } }

您可以使用以下语法来使用它。

_。findIndex(lstMainArray,['searchField.searchName','Abc1']);