zoukankan      html  css  js  c++  java
  • 数组常见方法(不包括新增)

    .push( ):在数组的末尾添加元素,返回长度

    var arr = [1,2,3];
    console.log(arr.push("hello"));  //4
    console.log(arr);                //[1,2,3,"hello"]---原数组改变
    console.log(arr.push("a","b"));  //6
    console.log(arr);                //[1,2,3,"hello","a","b"]---原数组改变

    .unshift( ):在第一位新增一或多个数据,返回长度

    
    

    .pop( ):删除最后一位元素,并返回删除的数据

    var arr = [1,2,3];
    console.log(arr.pop());     //3
    console.log(arr);           //[1,2]---原数组改变

    .shift( ):删除第一位,并返回删除的数据

    var arr = [1,2,3]
    console.log(arr.shift());       //1
    console.log(arr);               //[2,3]---原数组改变

    .splice( m , n , a, ……):

    替换:从第m个项目开始删除,一共删除n个;a可选,表示在删除的位置添加新元素a

    var arr = [34,64,"hello",true,undefined];
    console.log(arr.splice(2,2,"html"));    // Array [ "hello", true ]
        console.log(arr);                   // Array(4) [ 34, 64, "html", undefined ]
    console.log(arr.splice(2,2));           // Array [ "html", undefined ]
        console.log(arr);                   // Array [ 34, 64 ]
    console.log(arr.splice(2,0,"html"));    // Array []
        console.log(arr);                   // Array(3) [ 34, 64, "html" ]
    console.log(arr.splice(2,2,"html","css","js"));             // Array [ "html" ]
        console.log(arr);                   // Array(5) [ 34, 64, "html", "css", "js" ]
    console.log(arr.splice(2,2,"html","css","js","..."));       // Array [ "html", "css" ]
        console.log(arr);                   // Array(7) [ 34, 64, "html", "css", "js", "...", "js" ]

    .concat( ):用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

    参数:concat(data1,data2,...);所有参数可选,要合并的数据;data为数组时,将data合并到原数组;data为具体数据时直接添加到原数组尾部;省略时创建原数组的副本。

    var arr1 = [1,2,3]
    var arr2 = arr1.concat();
    console.log(arr1);           //[1,2,3]---原数组
    console.log(arr1 === arr2);  //false
    console.log(arr2);           //[1,2,3]---原数组的副本
    
    console.log(arr1.concat("hello","world"));           //[1,2,3,"hello","world"]
    console.log(arr1.concat(["a","b"],[[3,4],{"name":"admin"}]));   //[1,2,3,"a","b",[3,4],{"name":"admin"}]
    console.log(arr1);           //[1,2,3]---原数组未改变
    123456789

    .join( ):根据指定分隔符将数组中的所有元素放入一个字符串,并返回这个字符串。

    join(str);参数可选,默认为","号,以传入的字符作为分隔符。

    var arr = [1,2,3];
    console.log(arr.join());         //1,2,3
    console.log(arr.join("-"));      //1-2-3
    console.log(arr);                //[1,2,3]---原数组未改变
    1234

    .toString( )

    功能:转换成字符串,类似于没有参数的join()。该方法会在数据发生隐式类型转换时被自动调用,如果手动调用,就是直接转为字符串。

    var arr = [1,2,3];
    console.log(arr.toString());     //1,2,3
    console.log(arr);                //[1,2,3]---原数组未改变

    .sort( )

    默认会按照字符的排序规则,升序

       需要传入回调函数,在回调函数身上右接收两个参数,返回这两个参数的差,可以按照数值的排序规则进行排序
        // 当数组内的元素为字符型数字,默认排序已经无法满足,需要手动处理;
        // 如function fn(n,m){return n-m}
        
        
        arr.sort(function(n,m){
            return n-m;
        });

    .slice( m , n ) :返回一个新数组,从下标m的位置取到下标n位置的前一个(不包含n),可以实现截取的功能

    var arr = [34,"a",67,"b","vc","html","hello"];
    console.log(arr);       // Array(7) [ 34, "a", 67, "b", "vc", "html", "hello" ]
    // slice:截取,从第一个参数位,截取到第二个参数位的前一个
    var a = arr.slice(2,6);     // Array(4) [ 67, "b", "vc", "html" ]
    console.log(a);

    slice不会改变原数组
      1.那么哪些方法会改变原数组? 因为slice没有改变原数组,索引,要想看到slice的执行结果,得找返回值,
      2.改变了原数组的方法,有没有返回值呢?是什么呢?

      功能:执行就可以看到结果,不需要有返回值
      处理数据:执行不一定能看到结果,需要有返回值

  • 相关阅读:
    nginx启动
    java中有三种移位运算符
    easyUI属性汇总
    rose学习
    eclipse 启动到load workbench 后静止
    nvl函数
    Io 异常: Socket closed
    编译错误和运行时错误
    java 二进制编码
    MyFormat 幫助類
  • 原文地址:https://www.cnblogs.com/wufenfen/p/11772011.html
Copyright © 2011-2022 走看看