javascript数字字符串反向排序无法正常工作

时间:2019-07-18 09:04:42

标签: javascript arrays string sorting numeric

我有一个数组["4", "2", "5", "3"],为什么排序功能可以正常工作,但反向功能却不能正常工作?

["4", "2", "5", "3"].sort(); //gives me ["2", "3", "4", "5"]

["4", "2", "5", "3"].reverse(); //gives me ["3", "5", "2", "4"]

2 个答案:

答案 0 :(得分:4)

来自Array.prototype.reverse()

  

reverse()方法将数组反转就位。第一个数组元素成为最后一个,最后一个数组元素成为第一个。

它只是反转给定的数组,与排序无关。您可以执行array.sort().reverse()


顺便说一句,["4", "2", "5", "3"].sort()按词法对数组进行排序。

console.log(
  ["4", "2", "5", "40", "3"].sort() // ["2","3","4","40","5"]
)

如果要根据给定数组的数值对它们进行排序,则必须:

const array = ["4", "2", "5", "3"]

console.log(
  array.sort((a, b) => a - b) // asc
)

console.log(
  array.sort((a, b) => b - a) // desc
)

答案 1 :(得分:2)

使用这样的排序功能反向:

console.log(["4", "2", "5", "3"].sort().reverse())