zoukankan      html  css  js  c++  java
  • JavaScript中的数组Array方法

    push(),pop()方法

    push(),pop()方法也叫栈方法,push()可以理解成,向末尾推入,而pop()恰好相反,可以理解成从末尾移除(取得)。

    var nums=[1,2,3,4];
    var counts=nums.push(5,6);
    alert(nums);            //1,2,3,4,5,6   改变原数组
    alert(counts);          //6             返回新数组数组的长度  
    
    var num=nums.pop();
    alert(nums);        //1,2,3,4,5     改变原数组 
    alert(num);        //6        返回数组最后一个值

      通过上面的代码可以总结出以下几点关于push(),pop()的规则:

    • push(),pop()方法均可以改变原数组;
    • push()方法的返回值是新数组的数组长度;
    • pop()方法的返回值是原数组最后一个值;

    shift(),unshift()方法

    shift(),unshift()方法也叫作队列 方法,shift()从头部移除(取到),unshift()理解成从头部推入。

    var nums=[1,2,3,4];
    var num=nums.shift();
    alert(nums);       //2,3,4     改变原数组
    alert(num);        //1      返回数组第一个值
    var counts=nums.unshift(-1,0,1);
    alert(nums);        //-1,0,1,2,3,4    改变原数组
    alert(counts)       //6           返回新数组长度

      通过上面的代码可以总结出以下几点关于shift(),unshift()的规则:

    • shift(),unshift()方法均可以改变原数组;
    • unshift()方法的返回值是新数组的数组长度;  
    • shift()方法的返回值是原数组最后一个值;

     sort(),reverse()方法

    数组当中有两个可用来重排序,其中reverse是按照数组的倒序进行重新排序,sort()是通过字符窜的比较进行排序的。

    var arr=[3,1,8,5,10];
    arr.reverse();
    alert(arr);            //10,5,8,1,3
    /****************************************/
    var arr=[3,1,8,5,10]; arr.sort(); alert(arr); //1,10,3,5,8 按字符串进行比较 alert("10">"5");     //false alert(10>5);       //true

     因为sort()在进行排序表比较的过程中会出现如上情况,所以需要给sort()添加一个比较函数;

            function compare(a,b){
                return a-b;
            }  
    • 当a-b>0,a和b的位置调换;
    • 当a-b<=0,a和b的位置不变;
    function compare(a,b){
         return a-b;
    }
    var arr=[3,1,8,5,10]; 
    arr.sort(compare); 
    alert(arr);    //1,3,5,8,10

     slice(),splice()方法

    slice()方法

    • slice()的操作返回新数组;

    • slice()不会改变原数组;

    slice()方法可以理解成“提取”;

    var arr=[1,2,3,4,5,6];
    var arr1=arr.slice(1);
    var arr2=arr.slice(1,2);
    var arr3=arr.slice(0,4);
    var arr4=arr.slice(2,5);
    var arr5=arr.slice(-3,-1);
    
    console.log(arr1);              //[2, 3, 4, 5, 6]
    console.log(arr2);              //[2]
    console.log(arr3);              //[1,2, 3, 4]
    console.log(arr4);              //[3, 4, 5]
    console.log(arr5);              //[4, 5]
    console.log(arr);          //[1,2,3,4,5,6]  不改变原数组

    splice()方法

    splice()与slice()看起来名字类似,但是有很大的不同,功能也比较强大,有三种。

    1 删除:

    参数:1个或两个;与slice()方法使用类似,但是会改变原数组;

    var arr=[1,2,3,4,5,6];
    var arr1=arr.splice(1,3);
    console.log(arr1);              //[2, 3]    新数组
    console.log(arr);              //[1,4,5]    原数组被改变
    
    /*参数是一个的时候*/
    
    var arr=[1,2,3,4,5,6];
    var arr1=arr.splice(1);
    console.log(arr1);              //[2, 3,4,5,6]     新数组
    console.log(arr);               //[1]           原数组被改变

    2 插入:

    参数:三个以上;

    第一个:起始位置;

    第二个:0;

    第三个之后:要插入的项("red","blue")

    var colors=["red","blue"];
    var newColors=colors.splice(1,0,"yellow","black");
    
    console.log(newColors);                 //[]    返回一个空数组
    console.log(colors);                     //["red", "yellow", "black", "blue"]    数组被改变     

    3 替换

    参数:三个以上;

    第一个:起始位置;

    第二个:被替换的个数或删除的个数;

    第三个之后:替换后要插入的项("red","blue");

    var colors=["red","blue","green"];
    var newColors=colors.splice(1,2,"yellow","black");
    
    console.log(newColors);              //["blue","green"]              返回被替换的数组
    console.log(colors);                 //["red", "yellow", "black"]         数组被改变 

     concat()方法

    可以理解成是一个连接数组的方法,不会改变原数组

    var arr=[1,2,3];
    var newArr=arr.concat(4,[5,6]);
    alert(arr);                //[1,2,3]      不改变原数组
    alert(arr1);               //[1,2,3,4,5,6]   返回新数组

     jion()方法

    可以将数组转换成字符串,并改变连接符,不会改变原数组

    var colors=["red","blue","green"];
    var newColors=colors.join("-");
    
    alert(newColors);                   //red-blue-green
    alert(colors);                      //["red","blue","green"]

    indexOf()和lastIndexOf()方法

    查找数组中的元素是否存在,若存在返回找到的一个的索引值,不存在返回-1

    indexOf()从前到后查找,lastIndexOf()从后向前查找

    均有两个参数,

    第一个参数:要查找的项

    第二个参数:查找的索引位置起点(可选)

    var nums=[1,2,3,4,5,2,7,8];
    
    alert(nums.indexOf(2));             //1
    alert(nums.lastIndexOf(2));         //5
    alert(nums.indexOf(2,3));           //5
    alert(nums.lastIndexOf(2,-4));      //1
    最近在维护一个前端交流群,群内有各个领域的大佬,各路妹子,程序员鼓励师等你来撩,欢迎加入,群号:249620372
  • 相关阅读:
    Oracle OCP 11G 053(601-712)答案解析目录_20140304
    Oracle OCP 11G 053(201-400)答案解析目录_20140304
    Oracle OCP 11G 053(1-200)答案解析目录_20140304
    dojo实现表格数据无法展示
    dojo实现表格
    Matlab基本函数-menu函数
    Matlab基本函数-log10函数
    Matlab基本函数-log函数
    Matlab基本函数-length函数
    Matlab基本函数-imag函数
  • 原文地址:https://www.cnblogs.com/wangyue99599/p/7326768.html
Copyright © 2011-2022 走看看