csjiabin's blog csjiabin's blog
首页
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
  • 学习笔记

    • 《面向Node.js开发者的Go》
更多
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

csjiabin

前端界的小菜鸟
首页
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
  • 学习笔记

    • 《面向Node.js开发者的Go》
更多
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • comments
  • printing
  • logging
  • variables
  • interpolation
  • types
  • type check
  • if/else
  • for
  • while
  • switch
  • arrays
  • uint8 arrays
  • array iteration
  • array sorting
    • buffers
    • maps
    • objects
    • functions
    • default values
    • destructuring
    • spread operator
    • rest operator
    • swapping
    • classes
    • generators
    • datetime
    • timeout
    • interval
    • IIFE
    • files
    • json
    • big numbers
    • promises
    • async await
    • streams
    • event emitter
    • errors
    • try/catch
    • exceptions
    • regex
    • exec
    • tcp server
    • udp server
    • http server
    • url parse
    • gzip
    • dns
    • crypto
    • env vars
    • cli args
    • cli flags
    • stdout
    • stderr
    • stdin
    • modules
    • stack trace
    • databases
    • testing
    • benchmarking
    • documentation
    • 《面向Nodejs开发者的Go》
    miguelmota
    2022-09-29
    目录

    array sorting

    Examples of how to sort an array

    # Node.js

    const stringArray = ["a", "d", "z", "b", "c", "y"];
    const stringArraySortedAsc = stringArray.sort((a, b) => (a > b ? 1 : -1));
    console.log(stringArraySortedAsc);
    
    const stringArraySortedDesc = stringArray.sort((a, b) => (a > b ? -1 : 1));
    console.log(stringArraySortedDesc);
    
    const numberArray = [1, 3, 5, 9, 4, 2, 0];
    const numberArraySortedAsc = numberArray.sort((a, b) => a - b);
    console.log(numberArraySortedAsc);
    
    const numberArraySortedDesc = numberArray.sort((a, b) => b - a);
    console.log(numberArraySortedDesc);
    
    const collection = [
      {
        name: "Li L",
        age: 8,
      },
      {
        name: "Json C",
        age: 3,
      },
      {
        name: "Zack W",
        age: 15,
      },
      {
        name: "Yi M",
        age: 2,
      },
    ];
    
    const collectionSortedByAgeAsc = collection.sort((a, b) => a.age - b.age);
    console.log(collectionSortedByAgeAsc);
    
    const collectionSortedByAgeDesc = collection.sort((a, b) => b.age - a.age);
    console.log(collectionSortedByAgeDesc);
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38

    Output

    [ 'a', 'b', 'c', 'd', 'y', 'z' ]
    [ 'z', 'y', 'd', 'c', 'b', 'a' ]
    [ 0, 1, 2, 3, 4, 5, 9 ]
    [ 9, 5, 4, 3, 2, 1, 0 ]
    [ { name: 'Yi M', age: 2 },
      { name: 'Json C', age: 3 },
      { name: 'Li L', age: 8 },
      { name: 'Zack W', age: 15 } ]
    [ { name: 'Zack W', age: 15 },
      { name: 'Li L', age: 8 },
      { name: 'Json C', age: 3 },
      { name: 'Yi M', age: 2 } ]
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    # Go

    package main
    
    import (
    	"fmt"
    	"sort"
    )
    
    type Person struct {
    	Name string
    	Age  int
    }
    
    type PersonCollection []Person
    
    func (pc PersonCollection) Len() int {
    	return len(pc)
    }
    
    func (pc PersonCollection) Swap(i, j int) {
    	pc[i], pc[j] = pc[j], pc[i]
    }
    
    func (pc PersonCollection) Less(i, j int) bool {
    	// asc
    	return pc[i].Age < pc[j].Age
    }
    
    func main() {
    	intList := []int{1, 3, 5, 9, 4, 2, 0}
    
    	// asc
    	sort.Ints(intList)
    	fmt.Println(intList)
    	// desc
    	sort.Sort(sort.Reverse(sort.IntSlice(intList)))
    	fmt.Println(intList)
    
    	stringList := []string{"a", "d", "z", "b", "c", "y"}
    
    	// asc
    	sort.Strings(stringList)
    	fmt.Println(stringList)
    	// desc
    	sort.Sort(sort.Reverse(sort.StringSlice(stringList)))
    	fmt.Println(stringList)
    
    	collection := []Person{
    		{"Li L", 8},
    		{"Json C", 3},
    		{"Zack W", 15},
    		{"Yi M", 2},
    	}
    
    	// asc
    	sort.Sort(PersonCollection(collection))
    	fmt.Println(collection)
    	// desc
    	sort.Sort(sort.Reverse(PersonCollection(collection)))
    	fmt.Println(collection)
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60

    Output

    [0 1 2 3 4 5 9]
    [9 5 4 3 2 1 0]
    [a b c d y z]
    [z y d c b a]
    [{Yi M 2} {Json C 3} {Li L 8} {Zack W 15}]
    [{Zack W 15} {Li L 8} {Json C 3} {Yi M 2}]
    
    1
    2
    3
    4
    5
    6
    编辑 (opens new window)
    #Go#Node.js
    上次更新: 2022/09/30, 11:34:22
    array iteration
    buffers

    ← array iteration buffers→

    最近更新
    01
    咖啡知识
    10-13
    02
    documentation
    09-29
    03
    benchmarking
    09-29
    更多文章>
    Theme by Vdoing | Copyright © 2018-2022 csjiabin | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式