普通排序
1.sort() 方法用于对数组的元素进行排序。
- 调用sort()方法进行排序,注意此排序方法是根据首字母的大小进行排序的,而不是根据数值的大小排序。
- 如果调用该方法时没有使用参数,是按照字符编码的顺序进行排序。 若是要按照一定标准排序,则需要提供比较函数。
例子:
对于一个整型数组进行排序,将排序的结果打印输出:
<script>
function sortArray(){
var example=[12,35,8,14,20,6,90,3];
console.log("排序前数组:"+example)
console.log("排序后的数组:"+example.sort())
}
</script>
<input type="button" value="普通数组排序" onclick="sortArray()" />
运行结果:
例子:
对于字符串数组进行排序,将排序的结果打印出来
<script>
function sortArray(){
var example=['Gblly','Gally','Abbay','Amitt','Zone','Callhu'];
console.log("排序前数组:"+example)
console.log("排序后的数组:"+example.sort())
}
</script>
<input type="button" value="普通数组排序" onclick="sortArray()" />
运行结果:
按照一定要求排序
按照一定标准排序得提供比较函数
function sortNumbers(a,b){
return a-b;
}
- a<b,那么a就应该排在b的前面,则返回一个小于0的值
- a=b,则返回0
- a>b,则返返回一个大于0的值
例子:按照数值的大小排序
<script>
function sortArray(){
var example=[12,6,84,25,36,10,2,18,98,75,14,33,158];
console.log("排序前数组:"+example)
console.log("排序后的数组:"+example.sort(sortNumbers))
}
function sortNumbers(a,b){
return a-b;
}
</script>
<input type="button" value="普通数组排序" onclick="sortArray()" />
运行结果:
对象数组排序
例子:
对一个对象数组进行排序,按照对象的某个属性进行排序,如根据年龄age属性进行排序:
<script>
function sortBeforeArray(){
var example=[{name:'Chen',age:'22'},{name:'Liu',age:'6'},{name:'HUHU',age:'15'},{name:'MOMO',age:'11'}];
console.log("排序前的数组:",example);
//console.log("排序后的数组:",example.sort(sortByKey('age')));
};
function sortAfterArray(){
var example=[{name:'Chen',age:'22'},{name:'Liu',age:'6'},{name:'HUHU',age:'15'},{name:'MOMO',age:'11'}];
//console.log("排序前的数组:",example);
console.log("排序后的数组:",example.sort(sortByKey('age')));
};
function sortByKey(key){
return function(a,b){
var x=a[key];
var y=b[key];
return x-y;
}
}
</script>
<input type="button" value="数组排序前" onclick="sortBeforeArray()" />
<input type="button" value="数组排序后" onclick="sortAfterArray()" />
运行结果: