zoukankan      html  css  js  c++  java
  • 对象数组按属性排序

    一个对象数组,单个对象里某个属性是数字,需要按这个属性的数字大小升序排序。

    如下代码是一个对象数组按照age属性排序的方法:

     1 var str=[
     2     {name:"a",age:50},
     3     {name:"b",age:20},
     4     {name:"c",age:40},
     5     {name:"d",age:30},
     6 ];
     7 function compare(key){
     8     return function(value1,value2){
     9         var val1=value1.key;
    10         var val2=value2.key;
    11         return val1-val2;
    12     }
    13 }
    14 str.sort(compare('age'));
    15 console.log(str);

    运行了上面代码,发现打印出来的还是原来的对象数组,并没有按照age属性排序。这是为什么呢

    网上查了资料发现,对属性的访问,obj["key"]与obj.key都是可以的,不过,如果key值并不确定,而是一个变量的时候,则只能通过obj[key]的方式访问。

    知道了这个知识点,我们再来实现一遍

     1 var str=[
     2     {name:"a",age:50},
     3     {name:"b",age:20},
     4     {name:"c",age:40},
     5     {name:"d",age:30},
     6 ];
     7 function compare(key){
     8     return function(value1,value2){
     9         var val1=value1[key];
    10         var val2=value2[key];
    11         return val1-val2;
    12     }
    13 }
    14 str.sort(compare('age'));
    15 console.log(str);

    运行结果

  • 相关阅读:
    mysql 存储结构
    Mysql 创建表
    java 定时任务
    SpringBoot
    Spring : Spring初识(二)
    hadoop
    JAVA学习路线图
    redis缓存和cookie实现Session共享
    说说 JAVA 代理模式
    Spring 学习教程(五):快速入门
  • 原文地址:https://www.cnblogs.com/wxcbg/p/10752139.html
Copyright © 2011-2022 走看看