• day4-2数组及方法


    数组:

    Js数组 可以存放任意数据类型的数据

    如果索引大于数组的长度,数组自动增加到该索引值加1的长度

    var arr = ["terry","larry","boss"];

    arr[3] ="jacky"; //添加元素,数组程度变为4

    注意!数组最多可以包含4 294 967 295个项

    方法:

    Sort():如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。

    如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字

    默认排序:该方法会调用每个数组项的toString() 方法,然后按照字符序列排序

    自定义排序:

             a.该方法可以接受一个比较函数作为参数,比较函数有两个参数

    b.如果第一个参数位于第二个参数之前,返回负数

    c.如果第一个参数位于第二个参数之后,返回正数

    例如:

    1 function compare(a,b){

    if(a>b){

    return -1;

    }else{

    return 1;

    }

    }

    console.log(arr.sort(compare));

    2 function com(attr,rules){

    if(rules=='升序'){

    return function(a,b){

    if(a[attr]<b[attr]){

    return -1;

    }else{

    return 1;

    }

    }

    }else{

    return function(a,b){

    if(a[attr]>b[attr]){

    return -1;

    }else{

    return 1;

    }

    }

    }

    }

    stu.sort(com('age','降序'));

    console.log(stu);

    Function Sort(fun){

    Fun();  //sort内部会执行传入的函数,所以只需传入一个参数的引用即可

    }

    数组序列化

    toString() 在默认情况下都会以逗号分隔字符串的形式返回数组项

    join(); 使用指定的字符串用来分隔数组字符串

    截取方法

    concat()  

    数组拼接,先创建当前数组的一个副本,然后将接收到的参数添加到这个副本的末尾,返副本,不改变原数组。

     slice()  

    数组切割,可接受一个或者两个参数(返回项的起始位置,结束位置),当接受一个参数,从该参数指定的位置开始,到当前数组末尾的所有项。当接受两个参数,起始到结束之间的项,但是不包含结束位置的项。不改变原数组

     splice()  

    向数组的中部插入数据将始终返回一个数组,该数组中包含从原始数组中删除的项。

    删除:指定两个参数(删除的起始位置,要删除的项数)

    插入:指定三个参数(起始位置,0,要插入的项任意数量的项)

    替换:指定三个参数(起始位置,要删除的项,要插入的任意数量的项)

     索引方法

     indexOf()  

    从数组开头向后查找,使用全等操作符,找不到该元素返回-1。第一个参数为要查找的项,第二个参数(可选)为索引开始位置

    lastIndexOf()

    迭代方法

    every()  

    对数组中的每一运行给定的函数,如果该函数对每一项都返回true,则该函数返回true

    some()  

    对数组中的每一运行给定的函数,如果该函数对任一项都返回true,则返回true

    filter()

    对数组中的每一运行给定的函数,会返回满足该函数的项组成的数组

    map()

    对数组中的每一运行给定的函数,返回每次函数调用的结果组成的数组

    forEach()

    对数组中的每一运行给定的函数,没有返回值,常用来遍历元素

    如何把类数组对象转化为数组对象?

    需要用到Array类型中的slice方法,再结合call方法

  • 相关阅读:
    java wait方法
    thread join
    AtomicReference 原理
    exchanger java另一种栅栏
    CyclicBarrier 栅栏 原理,应用场景
    信号量Semaphore
    FutureTask 解析
    CountDownLatch
    java 双端队列 Deque
    lockInterruptibly 和lock 原理
  • 原文地址:https://www.cnblogs.com/wskb/p/11091429.html
Copyright © 2020-2023  润新知