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。



全栈前端 / JavaScript语法 :





















Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.