javascript 按数字对“[word] [number]”形式的字符串数组进行排序

rqdpfwrv  于 2023-01-29  发布在  Java
关注(0)|答案(2)|浏览(102)

我想排序这个数组的数字一样["猫头鹰1","狗2","鸟4"]我尝试了许多方法,但仍然相同(我需要为新的程序员prefect solution)

let v =['bird 4', "owl 1", "dog 2"]
v.sort((a,b) => a-b)
console.log(v)
let v =['bird 4', "owl 1", "dog 2"]
v.sort((a,b) => a-b)
console.log(v)

我预料到了

["owl 1", "dog 2", "bird 4"]
mm9b1k5b

mm9b1k5b1#

这种行为是由于你试图比较字符串,而字符串是按字典顺序排列的(bird在dog之前,owl在wow之前)。但是你想按number排序。所以你只需要查看数字,而不是数字前面的单词。还要记住string"4"number 4不同。
为了获得所需的行为,您必须解析数字(例如使用Number()Number.parseInt()),然后使用这些数字进行比较。

let v = ['bird 4', "owl 1", "dog 2"]
v.sort((a,b) => Number(a.split(" ")[1]) - Number(b.split(" ")[1]));

console.log(v);

我假设每一个字符串都包含一个空格,并且在空格后面有一个实际的数字,如果需要的话,你将需要处理那些不是这样的情况。

unguejic

unguejic2#

令v =[“鸟4”,“猫头鹰1”,“狗2”,]
令排序值=v.排序((a,B)=〉a.字符位置(a.长度-1)-b.字符位置(b.长度-1))
控制台.log(排序值)

相关问题