js学习-数组(3)

操作方法:

1、concat() 方法可以基于当前数组中的所有项创建一个新数组。具体来说,这个方法会

先创建当前函数的一个副本,然后就接收到的参数添加到这个副本的末尾,最后返回

新构建的数组。

            var colors=["red","green","blue"];
            var colors2=colors.concat("yellow",["black","brown"]);

            alert(colors2);  //["red","green","blue","yellow","black","brown"]
            alert(colors);   //["red","green","blue"];


2、slice()方法能够基于当前数组中的一个或多个创建一个新数组。该方法可以接收一个

或两个参数,即要返回项的起始和结束位置。在只有一个参数的情况下,slice()方法返回从

参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置

之间的项——但不包括结束位置的项。注意,slice()方法不会影响原始数组。

            var colors=["red","green","blue","yellow","black","purple"];
            var colors2=colors.slice(1);
            var colors3=colors.slice(1,4);
            alert(colors2); //["green","blue","yellow","black","purple"]
            alert(colors3);   //["green","blue","yellow"]


注意:如果slice()方法的参数中有一个负数,则用数组长度加上该数来确定相对应的位置。例如,

在一个包含5项的数组上调用slice(-2,-1)与调用slice(3,4)得到的结果相同。如果结束位置小于起始

位置,则返回空数组


3、splice()方法,该方法有多种用法,主要用途是向数组的中部插入项

(1)删除:可以删除任意数量的项,只需指定2个参数:要删除的第一个项的位置和要删除的项数。

splice(0,2)会删除数组的前两项

(2)插入:可以向指定位置插入任意数量的项,只需要提供三个参数:起始位置、0(要删除的任意项数)

和要插入的的项。如果要插入多个项,可以再传入第四个、第五个以至任意多个项。例如splice(2,0,"red","green")

会从当前的数组的位置2开始插入字符串"red","green"

(3)替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项。只需要指定3个参数:起始位置、要删除的项

数和要插入的任意数量的项。插入的项数不必与删除的项数相等。

splice()始终会返回一个数组,该数组包含从原始数组中删除的项(如果没有删除任何项,则返回一个空数组)     
var colors=["red","green","blue"];
            var removed=colors.splice(0,1);
            alert(colors);  // ["green","blue"]
            alert(removed);  //["red"]
            
            removed=colors.splice(1,0,"yellow","orange");
            alert(colors);   //["green","yellow","orange","blue"]
            alert(removed);  //空数组

            removed=colors.splice(1,1,"red","purple");
            alert(colors);   //["green","red","purple","orange","blue"]
            alert(removed);  //["yellow"],返回的数组中只包含一项


位置方法:

indexOf()和lastIndexOf()。这两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中,

index()方法从数组的开头(位置0)开始查找,lastIndexOf()从数组的末尾开始向前查找。

这两个方法都返回要查找的项在数组中的位置,或者在没找到的情况下返回-1.

            var numbers=[1,2,3,4,5,4,3,2,1];

            alert(numbers.indexOf(4));       //3
            alert(numbers.lastIndexOf(4));    //5

            alert(numbers.indexOf(4,4));     //5
            alert(numbers.lastIndexOf(4,4));      //3


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值