JavaScript内置对象之Array的常见方法

1.Array.form()方法:静态方法,通过在一个伪数组或者可迭代对象中进行操作返回一个新数组。语法为Array.form(arrayLike[,mapFn[,thisArg]])。arrayLike:伪数组或可迭代对象,mapFn:可选参数,新数组每个元素执行该回调函数,thisArg:可选参数,执行回调函数mapFn时的this对象。

2.Array.isArray()方法:静态方法,判断参数位置的对象是不是数组,返回bool值。此方法支持于IE9、Firefox4、Safari5、Opera10.5 和 Chrome (或更高版本)。在此方法之前,判断一个对象是不是数组时,常用value instanceof Array的方式判断。

3.Array.prototype.join()方法:实例方法,通过在join()参数位置传入字符串,实现将数组每个元素通过传入的字符串连接成新字符串。

4.Array.prototype.pop()和Array.prototype.push()栈方法:实例方法,因为使数组像栈一样LIFO(Last-In-First-Out)操作。push()方法将会把传入的参数推入数组的最后,而返回新数组的长度。pop()方法将数组最后位置的元素推出,返回这个元素的值。

5.Array.prototype.shift()和Array.prototype.unshift()方法:队列方法,因其能够提供像队列一样处理数组的方式而得名。Array.prototype.shift()类似pop()方法,其将数组第一个元素推出,并返回这个元素。unshift()方法,类似push()方法,其在数组前推入参数传入的各个值,并返回新数组的长度。

6.Array.prototype.sort()和Array.protootype.reverse()方法:重排序方法。reverse()方法顾名思义能将数组元素顺序反转。sort()方法在默认情况下按升序排列数组中的元素,实现原理是将每个元素调用toString()方法转变为字符串后排序(注意:即使数组中全是数字元素也将转换为字符串后排序),由于其排序方式的缘故,往往与我们想要的结果有所偏差,所以常常在sort()方法中传入排序函数。

var nums = [0,1,5,10,15];
nums.sort();//调用默认sort()函数
console.log(nums);//此时输出顺序是0,1,10,15,5

//为避免这种情况,常常传入比较函数保证排序准确
function compare(a,b){
    if(a<b){
        return -1;
    }else if(a==b){
        return 0;
    }else{
        return 1;
    }

}

var newNums = [0,1,5,10,15];
newNums.sort(compare);//传入比较函数
console.log(newNums);//这是就能保证排序正确,想要降序排列只需将比较函数中的-1和1调换位置

7.Array.prototype.concat()方法:无参数时,一个数组调用cancat()方法后会返回此数组的复制。传入参数时,cancat()方法会返回一个将参数添加到原数组后的新数组,当传入一个数组作参数时,参数数组中的所有元素将被添加到末尾。

8.Array.prototype.slice()方法:该方法接收1-2个参数,当传入两个参数时,slice()方法会返回原数组从起始位置到结束位置的新数组(但不包括结束位置)。当slice()方法传入一个参数时,会返回原数组从指定位置到数组末尾的新数组。

9.Array.prototype.splice()方法:splice()方法可以做删除、插入、替换的功能。当需要删除元素时:传入两个参数,开始位置和删除长度,splice()方法会返回删除的元素形成的数组。当需要插入元素时:只需传入三个参数,起始位置,0和插入的元素,当插入的元素多于一个时,只需在第四第五....个参数位置加即可,此时返回一个空数组。当需要替换元素时:splice()方法会删除一些元素,同时在该位置添加一些元素,此时同样返回删除的元素组成的数组。

10.Array.prototype.indexOf()方法和Array.prototype.lastIndexOf()方法,这两个方法都可以查找数组中有没有某个元素,这两个方法都可以接收两个参数,第一个参数表示查找的值,第二个参数(可选)表示开始查找的位置。这两个方法的查找将使用全等===进行匹配,不同的是,indexOf()方法从索引为0开始匹配,而lastIndexOf()则将从数组结尾开始匹配。这两个方法都将返回找到的第一个的项在数组中的位置。

11.Array.prototype.every()方法:对数组中的每个元素,给定函数对每一项都返回true,则返回true。

12.Array.prototype.filter()方法:对数组中的每一项运行给定函数,返回所有返回true的元素组成的数组。

13.Array.prototype.forEach()方法:对每个元素运行该函数,相当于用for循环遍历数组,不会返回任何值。

14.Array.prototype.map()方法:对数组中的每一项运行给定函数,返回运行结果组成的数组。

15.Array.prototype.some()方法:对数组中的每一项运行给定函数,如果有一个元素返回true,则返回true。

16.11-15方法都不会改变原数组值,给定函数可以形参可以有item(正在处理的元素),index(此元素的索引),array(被调用的数组)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值