我想排序这个数组的数字一样["猫头鹰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"]
2条答案
按热度按时间mm9b1k5b1#
这种行为是由于你试图比较字符串,而字符串是按字典顺序排列的(bird在dog之前,owl在wow之前)。但是你想按
number
排序。所以你只需要查看数字,而不是数字前面的单词。还要记住string
"4"
与number
4不同。为了获得所需的行为,您必须解析数字(例如使用
Number()
或Number.parseInt()
),然后使用这些数字进行比较。我假设每一个字符串都包含一个空格,并且在空格后面有一个实际的数字,如果需要的话,你将需要处理那些不是这样的情况。
unguejic2#
令v =[“鸟4”,“猫头鹰1”,“狗2”,]
令排序值=v.排序((a,B)=〉a.字符位置(a.长度-1)-b.字符位置(b.长度-1))
控制台.log(排序值)