工作中碰到需要对二维数组里面的数组的第一维数字大小进行排序,
直接使用sort();得到的结果是:[[1009,1], [356,2], [798,3]],
而这显然是不正确的,查看文档得知sort()是可带参数的,
arrayObject.sort(sortby) //可选。规定排序顺序。必须是函数。
- 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
- 若 a 等于 b,则返回 0。
- 若 a 大于 b,则返回一个大于 0 的值。
所以将sort()修改可以实现:
<html>
<head>
<title>二维数组排序</title>
<script type="text/javascript">
var numArr = [[1009,1], [356,2], [798,3]];
numArr.sort(function(a,b){
return a[0]-b[0];
});
document.write(numArr);
//得到正确结果[[356,2], [798,3], [1009,1]];
</script>
</head>
<body>
</body>
</html>
同样的,一维数组也会这样[22,12,5,7,19],sort后得到[12,19,22,5,7],也可以使用该方法解决
ps:基础不牢害死人啊!