gpt4 book ai didi

javascript - 下划线 - 从已排序的对象数组中查找

转载 作者:数据小太阳 更新时间:2023-10-29 04:42:22 26 4
gpt4 key购买 nike

Underscore 提供函数sortBy 来对对象数组进行排序。但是,一旦我有了这个排序数组,有没有办法使用二进制搜索来查找元素?函数 find 没有利用数组已排序的事实,而函数 indexOf 有,但它没有提供指定排序键的方法。

  1. 我是不是漏掉了什么?
  2. 是否有任何其他 JS 库可以轻松地做到这一点?

最佳答案

函数 _.sortedIndex 用于二进制搜索,但比您的目的更通用。我只想用它来构建一个 sortedFind,例如:

_.sortedFind = function sortedFind(list, item, key) {
return (_.isEqual(item, list[_.sortedIndex(list, item, key)]));
}

示例用法:

// http://jsfiddle.net/w3hzrehy/
_.sortedFind([10, 20, 30, 40, 50], 10); // true

var stooges = [{name: 'moe', age: 40}, {name: 'curly', age: 60}];
_.sortedFind(stooges, {name: 'larry', age: 50}, 'age'); // false
_.sortedFind(stooges, {name: 'curly', age: 60}, 'age'); // true

关于javascript - 下划线 - 从已排序的对象数组中查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25963838/

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