zoukankan      html  css  js  c++  java
  • [Ramda] Sort, SortBy, SortWith in Ramda

    The difference between sort, sortBy, sortWith is that:

    1. sort: take function as args.

    2. sortBy: take prop as args.

    3. sortWith: take array of funcs as args.

    const R = require('ramda');
    
    const {sort, sortBy, sortWith, descend, prop, ascend} = R;
    
    const sample = [
        {name: "Sally", age: 29, height: 65},
        {name: "Zac", age: 29, height: 72},
        {name: "John", age: 32, height: 61},
        {name: "Lisa", age: 28, height: 63},
        {name: "Bob", age: 29, height: 66},
        {name: "Allen", age: 29, height: 66}
    ];
    
    const heightDescending = descend(prop('height'));
    const ageDescending = descend(prop('age'));
    const nameAscending = ascend(prop('name'));
    
    const sortWithCondition = sortWith([
                                           heightDescending,
                                           ageDescending,
                                           nameAscending
                                       ]);
    
    const result = sortWithCondition(sample);
    /*
    * [ { name: 'Zac', age: 29, height: 72 },
      { name: 'Allen', age: 29, height: 66 },
      { name: 'Bob', age: 29, height: 66 },
      { name: 'Sally', age: 29, height: 65 },
      { name: 'Lisa', age: 28, height: 63 },
      { name: 'John', age: 32, height: 61 } ]
    * */
    console.log(result);
    
    /*
    * sort: take function
    * */
    const sortByNameDescending = sort(descend(prop('name')));
    const result1 = sortByNameDescending(sample);
    /*
    * [ { name: 'Zac', age: 29, height: 72 },
      { name: 'Sally', age: 29, height: 65 },
      { name: 'Lisa', age: 28, height: 63 },
      { name: 'John', age: 32, height: 61 },
      { name: 'Bob', age: 29, height: 66 },
      { name: 'Allen', age: 29, height: 66 } ]
    * */
    console.log("sortByNameDescending:", result1);
    
    
    /*
    * sortBy: take prop
    * */
    const age = prop('age');
    const result2 = sortBy(age);
    /*
    * [ { name: 'Lisa', age: 28, height: 63 },
      { name: 'Sally', age: 29, height: 65 },
      { name: 'Zac', age: 29, height: 72 },
      { name: 'Bob', age: 29, height: 66 },
      { name: 'Allen', age: 29, height: 66 },
      { name: 'John', age: 32, height: 61 } ]
    * */
    console.log(result2(sample));
  • 相关阅读:
    小程序中的箭头函数
    总结:小程序常见问题(2)
    总结:小程序常见问题(1)
    实战:云开发-实现奶茶店小程序(二)
    实战:云开发-实现奶茶店小程序(一)
    实战:云开发-实现在线充值小程序
    ORACLE表名与列名小写转成大写
    MSSQL所有表名、列名转大写的SQL语句
    ORACLE 之 标识符无效 问题总结及解决方案
    SQL语句获取数据库中的表主键,自增列,所有列
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6510712.html
Copyright © 2011-2022 走看看