Javascript 反向排序数组的sortedIndex?

Javascript 反向排序数组的sortedIndex?,javascript,arrays,sorting,lodash,Javascript,Arrays,Sorting,Lodash,看起来lodash's希望一个前向排序的数组来进行二进制搜索。(例如[0,1,2,4]) 当数组反向排序时,是否有方法使用SortedIndex?(例如[4,2,1,0]) 为了让它现在起作用,我必须反转数组,找到sortedIndex,插入新元素,然后取消反转数组 注意--需要一些可以对字符串和数字进行排序的东西 ['A','B','D']插入['D','B','A']并插入'C'怎么样 编辑:对于字符串比较,可以帮助您将其转换为数字,然后可以应用相同的逻辑 const arr1=[0,1

看起来lodash's希望一个前向排序的数组来进行二进制搜索。(例如
[0,1,2,4]

当数组反向排序时,是否有方法使用SortedIndex?(例如
[4,2,1,0]

为了让它现在起作用,我必须反转数组,找到sortedIndex,插入新元素,然后取消反转数组


注意--需要一些可以对字符串和数字进行排序的东西

['A','B','D']
插入
['D','B','A']
并插入
'C'
怎么样

编辑:对于
字符串
比较,可以帮助您将其转换为
数字
,然后可以应用相同的逻辑

const arr1=[0,1,2,4];
常数arr2=[4,2,1,0];
控制台日志(u.sortedIndex(arr1,3));
//类似,但具有排名功能。
log(u.sortedIndexBy(arr2,3,函数(x){return-x;}));
常量字符=['D','B','A'];
//取第一个字符并转换为数字
let index=uu.sortedIndexBy(字符,'C',函数(x){
//类型检查。(如果您希望它对许多类型都是通用的。)。。
如果(x的类型=='string'){
返回-x.charCodeAt(0);
}else if(x的类型=='number'){
返回-x;
}//else…对于其他类型。。。。。
});
log('要插入字符C,请将其放入索引:',索引);

好主意!唉,有时候我需要这样对字符串排序。['A'、'B'、'D']到['D'、'B'、'A']并插入'C'。更新了
字符串的大小写。但是对于较长的字符串('AAA'、'AAB'、'AAC'))必须迭代字符串才能转换每个字符。我担心在这一点上反转可能会更快。使用sortedIndex时,您知道数组是否已反转排序吗?如果是,您只需获得正常排序的值,然后使用
realIndex=length-index;
获取反转数组中的位置y:P.@fuyushimoya
\ucode>sortedIndex([40,30,10],20)
生成0。数组长度(3)-0等于3。生成的数组将是
[40,30,10,20]
,这意味着
realdindex=length-index;
将不起作用,当然,除非我遗漏了什么:)
> _.sortedIndex( [0,1,2,4], 3 )
> 3
> _.sortedIndex( [4,2,1,0], 3 )
> 4