<script type="text/javascript">
var arr = new Array(1,3,9,5,2,10,15);
var res = arr.sort(function(a,b){ //为什么定义这个函数 a,b分别指什么
if(a>b){ //这个if语句也不明白
return 1;
}else {
return -1;
}
});
console.log(res);
</script>
以前写的博文 可以参考下 http://www.cnblogs.com/zichi/p/5180489.html
看这里https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
你现在要要做的是给数组排序,sort是数组排序的一个方法,他的语法是数组.sort(function(){//排序的方法}),这个函数是可选的,如果没有就按照Unicode码给他们排序,但是不一定的到你想要的顺序,比如你不写默认的排序是(1,10,15,2,3,5,9)他们会先转成字符串,比较第一位,再比较接下来的。所有这个时候给个参数a、b是为了让他们按照你需要的顺序来排。if判断语句的意思是,a,b是数组里面的数据,相互比较,如果大的放后面,小的放前面。上面的链接说的比较仔细,你可以具体研究下。
arr.sort(func) 调用了Array对象的内置方法sort来做排序,下面是一个类似的实现,传入一个方法来使用冒泡排序算法来排序数组。
function bubble_sort(arr, func) {
do {
var swapped = false;
for (var i = 1, len = arr.length; i < len; i++) {
// 调用自定义函数作比较
if (func.call(null, arr[i - 1], arr[i]) > 0) {
var temp = arr[i - 1];
arr[i - 1] = arr[i];
arr[i] = temp;
swapped = true;
}
}
} while (swapped);
return arr;
}
var sortarr = bubble_sort(arr, sort);