四十三.数组的内置功能

158 阅读5分钟

数组常用的内置功能

1.concat():连接两个或多个数组,并返回一个新数组保存了连接数组的元素,不改变原数组。

image.png

image.png

传入的是数组就连接数组中的元素,传入的不是数组就直接连接传入的数据。调用的数组的元素也会连接,可以连接所有数据。

image.png

image.png

2.数组的toString() 返回包含所有数组元素的字符串,以逗号分开,不会改变原始数组。

image.png

image.png

3.join():把数组的所有元素放入一个字符串,元素通过指定的分隔符进行分隔,没有传参默认逗号分隔。返回值是一个字符串,不改变原数组。相当于数组中每一个元素toString()后再用分隔符连接每一个元素,数组中套的数组的元素也会toString()。

image.png

image.png

对象的toString()返回的是[object Object]

4.pop():该方法返回数组的最后一个元素。会改变原数组,调用的原数组删除最后一个元素,不用传入参数。当数组中没有元素可以删除时,pop()方法返回undefined,调用方法的原数组还是空数组。

image.png

image.png

调用一次就删除一个且会返回一个,调用后不用变量接收该方法的返回值就得不到数组中删除的元素,原数组依然会删除最后一个元素。数组中没有元素时再删除原数组依然为空数组,其返回值是undefined。

5.push():该方法返回新数组添加元素之后的长度。会改变原数组,向调用方法的数组的末尾添加一个或多个元素。添加多个元素时按照顺序在末尾添加,数组的length属性值是数组最后一个元素下标加1。

image.png

image.png

6.shift():该方法返回数组的第一个元素。会改变原数组,调用的原数组删除最后一个元素,不用传入参数。和pop()同理,调用一次就删除一个且会返回一个,数组中没有元素时不再删除,shift()返回值是undefined。

image.png

image.png

7.unshift():该方法返回数组添加元素后新的长度。会改变原数组,向调用方法的数组的开头添加一个或多个元素。添加多个元素时按照顺序在开头添加,数组的length属性值是数组最后一个元素下标加1。

image.png

image.png

8.splice():该方法返回值是将数组中删除的元素放入到新数组。会改变调用方法的原数组,原数组会删除元素也会添加新元素。

image.png

image.png

9.reverse():该方法返回值是改变后的原数组。会改变调用方法的原数组,将调用方法的数组中元素顺序反转。

image.png

image.png

10.slice():从某个已有的数组选择选定的元素,返回值是新的数组对象,返回数组中被选中的元素,不会改变原数组。第1个参数指定从哪里开始选择,使用负数从数组的末尾进行选择。如果省略,则默认为0。第2个参数指定结束选择的位置,如果省略,将选择从开始位置到数组末尾的所有元素,使用负数从数组末尾进行选择。第1个参数为负数,第2个参数为正数会返回空数组,当两个参数都是负数时只有第1个参数的绝对值大于第2个参数的绝对值才有效,否则返回空数组。第2个参数的结束下标的元素是选择不到的。

    var arr=["0311","0816","0530","0729"];
        var re=arr.slice(0,1);
        console.log(re,arr);
        console.log("=========")
        var re1=arr.slice(-3,-1);//从数组末尾的第3个开始到数组末尾的第1个结束
        var re2=arr.slice(-1,-3);
        console.log(re1,re2);
        console.log("=========");
        var re3=arr.slice(1,-1);//从数组下标为1的元素到数组末尾的最后一个元素结束
        console.log(re3);
        console.log("=========");
        var re4=arr.slice(-2,0);
        console.log(re4);
        console.log("=========");
        var re5=arr.slice(-2,-1);
        console.log(re5);
        console.log("=========");
        var re6=arr.slice(-2,-3);
        console.log(re6);

image.png

11.sort():该方法返回值是改变后的原数组,会改变调用方法的原数组,对调用方法的数组的元素进行排序。不传参默认按照表码顺序,数字按照第一位开始比较,相同则比较第二位依此类推,常用于排姓名字母的顺序。

image.png

image.png

可以传入回调函数让函数自调用,然后不按表码比较数字大小。该函数应返回负值、零值或正值,具体取决于参数。sort() 方法比较两个值时,将值发送给比较函数,根据返回的(负、零、正)值对值进行排序。回调函数传入a和b,当返回值为负数时(即a < b),排序后数组中a的值排在b的前面,升序排序;当返回值为正数时(即a > b),排序后数组中a的值排在b的后面,降序排序;当返回值为0时(即a = b),顺序无变化。b的值是数组遍历到的当前值,a是数组遍历到的下一个值(即b的下一个)。 (b-a从大到小排序,a-b从小到大排序)

image.png

image.png

image.png

image.png

12.valueOf():返回数组对象的原始值(数组直接量),该方法返回值是数组本身。

image.png

image.png

13.indexOf()和LastindexOf():查找数组中是否有某个元素,没有则返回-1,有就返回查找到的元素第1个下标,第1个参数是要查找的元素,第2个参数是从哪一个下标开始查找,省略则默认为0。类似于字符串的查找。保存引用数据查找时必须要同一个引用。

 var re={age:26};
        var arr=[100,200,100,300,{name:"jzx"},re];
        console.log(arr.indexOf(100));
        console.log(arr.indexOf(100,1));
        console.log(arr.indexOf({name:"jzx"}));
        console.log(arr.indexOf(re));

image.png

14.isArray():判断是不是数组,是数组返回true,否则返回false。

 var arr=[];
    var str="";
    console.log(Array.isArray(arr));
    console.log(Array.isArray(str));

image.png