• JavaScript数组的快速克隆(slice()函数)和数组的排序、乱序和搜索(sort()函数)


    JavaScript中对变量的操作都是通过引用方式,而对数组也一样。
    前两天想要对一个数组进行复制,一直苦于找不到办法(遍历的方法俺是绝对不采用的)

    无意中拿起《JavaScript权威指南》翻了翻数组的操作函数,发现了slice()函数。

    slice()原来是用来截取数组中的一部分,这里我用它来复制数组,它的格式如下:
    array.slice(start, end)
    如果省略了end参数,则切分的数组包含从start开始到数组结束的所有元素。

    现在要用它来复制数组,就一行,呵呵:
    var newArray=oldArray.slice(0);

    所有这些功能,用一个sort()就可以完成了。

    1. 排序:
    默认的sort()按字符编码排序的:

    现在要让它按照数值大小排序:

    只要传递一个比较函数给sort就可以了,如果比较函数的值小于0,则表示a必须出现在b前面,否则在b后面。

    2. 乱序:
    让比较函数随机传回-1或1就可以了:

    3. 搜索:
    用sort()来玩搜索还蛮新鲜的,呵呵,看看是怎么玩的吧。
    我现在要把数组里含有字母'a'的元素全部找出来,如果没有sort(),似乎只能用遍历了,遍历的效率…那个叫恐怖啊!!具体做法如下:

    这样就把数组中含有字母'a'的元素全部放到数组前面啦,再经过一些简单的处理,就可以输出搜索结果了。

    以上是我总结的三种在javascript中用sort()操作数组的方法,如果你有兴趣,你会发现sort()还有好多妙用呢……

  • 相关阅读:
    nyoj-115-城市平乱(dijkstra算法)
    如何在大学里脱颖而出(其二)
    P6880-[JOI 2020 Final]オリンピックバス【最短路】
    P6847-[CEOI2019]Magic Tree【dp,线段树合并】
    P6800-[模板]Chirp Z-Transform【NTT】
    P5470-[NOI2019]序列【模拟费用流】
    P6563-[SBCOI2020]一直在你身旁【dp,单调队列】
    CF587F-Duff is Mad【AC自动机,根号分治】
    P7405-[JOI 2021 Final]雪玉【二分】
    互斥锁,IPC队列
  • 原文地址:https://www.cnblogs.com/xiang/p/269412.html
Copyright © 2020-2023  润新知