reverse()和sort()方法的返回值是经过排序后的数组。reverse()方法会反转数组项的顺序:
var
values=[1,2,3,4,5]
values.reverse()
alert(values)
//5,4,3,2,1
在默认情况下,sort()方法按升序排列数组,sort()方法会调用每个数组项的toString()转型方法,然后比较得到字符串,确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串:
var
values
=
[0,1,5,10,15]
values.sort()
alert(values)
//0,1,10,15,5
因此,sort()方法可以接收一个比较函数作为参数。
function
compare(value1,value2){
if
(value1
<
value2){
return
-1
}else
if
(value1
>
value2){
return
1
}else{
return
0
}
}
此比较函数可适用于大多数数据类型,只要将其作为参数传递给sort()方法即可:
var
values
=
[0,1,3,7,9,15]
values.sort(compare)
alert(values)
//0,1,3,7,9,15
也可通过比较函数产生降序排序,只需交换函数返回值即可:
function
compare
(value1,
value2){
if
(value1<value2){
return
1
}else
if
{
return
-1
}else{
return
0
}
}
sort()函数的排序条件是:
参数大于0,arr的相邻两个元素交换位置
参数小于0,arr的相邻两个元素不交换位置
参数等于0,arr的相邻两个元素大小相等所以compare自定义函数必须返回一个数值。
2.对于数值类型或者valueOf()方法会返回数值类型的对象类型。
可使用一个更简单的比较函数。此函数只要第二个值减第一个值即可。
function
compare
(value1,value2){
return
value2
-
value1
}
以上所述是小编给大家介绍的JS中数组重排序方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
你的List如果是个字符串,那就直接这样写var list="123456"
var newList=""
for(var i=list.length-1i>=0i--){
newList+=list[i]
}
alert(newList)
如果是数组那更简单,JS有个原始的方法array.reverse()
首先了解JavaScript中字符串和数组的区别:
①字符串是不可变的,数组是可变的。字符串不可变是指字符串的成员函数不会改变其原始值,而是创建并返回一个新的字符串。而数组的成员函数都是在其原始值上进行操作。
②数组有一个字符串没有的可变更成员函数reserve()。
方法一:先将字符串转化为数组,待处理完后再将结果转化回字符串:
split()方法将一个字符串拆成字符并返回一个数组
reverse()方法使数组反转
join()方法将数组中的所有元素边接成一个字符串
var a="foo"
var b=a.split("")//转化为字符串数组
.reverse()//进行反转
.join("")//数组中的字符拼接回字符串
方法二:把字符串中的字符倒序存入数组,再将数组转化为字符串:
var newString = []
for(var i = a.length-1,j = 0i >= 0i --,j ++){
newString[j] = a[i]
}
newString.join()