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));
  • 相关阅读:
    ROW_NUMBER() OVER函数的基本用法
    oracle 中的next_day函数
    宽带大小与实际网速的关系:
    ora-29280 invalid directory path
    [spring]Attribute "scope" must be declared for element type "bean"
    什么是JDK,JRE,SDK,JVM以及API
    管理的常识: 让管理者发挥绩效的7个基本概念 读书笔记
    lua __index的简写
    lua中设置table={}时需要注意的坑
    摄像机旋转
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6510712.html
Copyright © 2011-2022 走看看