JS排序数组对象的方法,字母和数字升降序实例在线编辑
JS排序数组对象的方法
JavaScript中要对数组对象,及数组中的元素是对象类型的,那么该如何进行相关的排序呢?JavaScript的数组中内置了sort()方法,可以用于对数组进行按字母顺序或数字大小顺序进行升降序的排序,具体代码如下方的实例。
JS排序数组对象按首字母顺序的排序实例代码,及在线编辑器
<div id='e1'></div>
<script>
var obj_arr = [{name:'Xiaoming',score:90},{name:'liming',score:91},{name:'caixiaoming',score:89}]
obj_arr.sort(function(a, b){
var x = a.name;
var y = b.name;
if (x < y) {return -1;}
if (x > y) {return 1;}
return 0;
});
function display(arr){
var text = ''
for(i=0;i<arr.length;i++){
text = text + arr[i]['name'] + ' '+arr[i]['score']+'<br>'
}
return text
}
text = display(obj_arr)
document.getElementById('e1').innerHTML = text
</script>
实例代码解析
1、如上代码,JS中字母的排序规则可以参考:JS数组按首字母排序的方法sort()。2、数组对象obj_arr调用sort()方法,根据传递的匿名函数进行区分大小写的字母排序,上面排序根据的是数组中对象的'name'的属性值进行首字母的排序,而且是升序,如要将进行降序排序,可以将-1改成1,然后将下面的1改成-1。3、之所以还要设计一个display( arr )的函数,是为了将排序后的效果进行输出,如果只是单纯地alert()或直接innerHTML = obj_arr,输出的会是[object Object],[object Object],[object Object]。
Js数组对象按数字大小排序实例代码
<div id='e2'></div>
<script>
var obj_arr2 = [{name:'Xiaoming',score:90},{name:'liming',score:91},{name:'caixiaoming',score:89}]
obj_arr2.sort(function(a, b){
return a.score - b.score
});
function display(arr){
var html = ''
for(i=0;i<arr.length;i++){
html = html + arr[i]['name'] + ' '+arr[i]['score']+'<br>'
}
return html
}
html = display(obj_arr2)
document.getElementById('e2').innerHTML = html
</script>
解析
如上代码,与上面的按字母排序的代码基本保持不变,只是将sort()内的匿名函数进行了修改,而且是按数组元素的score属性值进行升序排序,如果要降序,可以将该匿名函数的return值修改成b.score - a.score。