Underscore 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

获取索引位置

_.indexOf(array, value, [isSorted])

返回value在该 array 中的索引值,如果value不存在 array中就返回-1。使用原生的indexOf 函数,除非它失效。

如果您正在使用一个大数组,你知道数组已经排序,传递true给isSorted将更快的用二进制搜索..,或者,传递一个数字作为第三个参数,为了在给定的索引的数组中寻找第一个匹配值。

    _.indexOf([1, 2, 3], 2);
    => 1

_.lastIndexOf(array, value, [fromIndex])

返回value在该 array 中的从最后开始的索引值,如果value不存在 array中就返回-1。

如果支持原生的lastIndexOf,将使用原生的lastIndexOf函数。传递fromIndex将从你给定的索性值开始搜索。

    _.lastIndexOf([1, 2, 3, 1, 2, 3], 2);
    => 4

_.sortedIndex(list, value, [iteratee], [context])

使用二分查找确定value在list中的位置序号,value按此序号插入能保持list原有的排序。

如果提供iterator函数,iterator将作为list排序的依据,包括你传递的value 。iterator也可以是字符串的属性名用来排序(比如length)。

    _.sortedIndex([10, 20, 30, 40, 50], 35);
    => 3

    var stooges = [{name: 'moe', age: 40}, {name: 'curly', age: 60}];
    _.sortedIndex(stooges, {name: 'larry', age: 50}, 'age');
    => 1
将上文中的示例,在右侧javascript代码框中实现。