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));
  • 相关阅读:
    java nb
    hdu5293(2015多校1)--Tree chain problem(树状dp)
    点击交互的四种处理
    Java实现二维码技术探讨。
    折腾开源WRT的AC无线路由之路-1
    C语言及程序设计[套餐]课程主页
    09_Android中ContentProvider和Sqllite混合操作,一个项目调用另外一个项目的ContentProvider
    C语言打印字母金字塔(第一行是A 第二行是ABA ……)
    成员函数的const究竟修饰的是谁
    linux pdb调试总结
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6510712.html
Copyright © 2011-2022 走看看