js中数组的操作方法(部分易忘方法整理)

1.concat() 基于当前数组中的项,创建一个新数组,并将参数中的内容追加到其原有数组项的后面,可用于合并数组项。

let arr1=[1,2];
let arr2=[3,4];
let arr3=[5,6];
console.log(arr1.concat('a','b'));  //打印结果为 [1,2,'a','b']
console.log(arr1.concat(arr1,arr2,arr3));//打印结构为[1,2,3,4,5,6]

2.slice()截取数组的数据项,包括开始位置,不包括结束位置

参数可以是0个:表示截取整个数组

参数可以是1个:表示从当前位置,截取到数组项的最后一位

参数可以是2个:表示从当前位置,截取到最后一位,但不包括最后一位

注意:如果参数值是负数,则从数组的最后一项(-1)开始,找到开始位置和结束位置的索引,其截取仍是保持从前向后的方式截取数据项

var arr = ["a", "b", "c", "d", "e", "f", "g"];
console.log(arr.slice()); //没有参数,全部截取 ["a", "b", "c", "d", "e", "f", "g"]
console.log(arr.slice(2)); //从当前这个索引2的位置开始截取,一直到结束["c", "d", "e", "f", "g"]
console.log(arr.slice(2, 5)); //第一个参数表示起始索引位置,第二个参数表示结束的索引位置,不包括结束位置。["c", "d", "e"]
console.log(arr.slice(2, -2)); //如果索引是负数,从后往前数位置,从-1开始。["c", "d", "e"]
//注意:负数表示从后往前数,仅仅是位置,截取的方法始终是从前往后,如果根据位置无法截取数组项,返回空数组。
console.log(arr.slice(2, -20)); //[]
console.log(arr.slice(-5, -2)); //["c", "d", "e"]
console.log(arr); //原数组["a", "b", "c", "d", "e", "f", "g"]

3.splice(),功能比较强大,可以实现数组的删除,插入和替换,会改变原数组

3.1删除:参数1表示删除的起始索引,负数则从前向后数;参数2表示删除的长度(注意和slice方法进行区分),如果参数二的值是负数则当做0处理。

3.2插入:其实现的本质是删除0个,添加几个,则实现插入功能。参数1表示删除的起始索引,负数则从前向后数;参数2表示删除的长度,这里可以设置为0或者是负数;参数3即为要添加的数据项

3.3替换:其实现的本质是插入几项就删除几项,其数据项的长度没有发生变化则实现替换的功能。参数1表示删除的起始索引,负数则从前向后数;参数2表示删除的长度;参数3即为要添加的数据项。注意参数2要删除的数据项长度应和参数3需要添加的数据项长度保持一致。

4.数组的迭代方法:重复反馈过程的活动,其目的是逼近所需的目标

参数1:每一项要运行的函数(回调函数),该函数有三个参数,分别表示:数据项的值,数据项的索引,数组对象

参数2:this的值,可以忽略

常见的迭代方法有:

every():表示数组中的每一项运行给定的函数,如果函数的每一项都返回true,则整个方法返回true

some():表示数组中的每一项运行给定的函数,如果函数的其中一项都返回true,则整个方法返回true

filter():表示数组中的每一项运行给定的函数,仅返回函数结果为true的数据项组成的数组

map():映射,表示数组中的每一项运行给定的函数,返回每一项运行结果组成的数据,不考虑true和false

forEach():表示数组中的每一项运行给定的函数,此方法无返回值,可以取代for循环

5.数组的归并方法:每一次迭代的结果作为下一次迭代的初始值。有两个参数,每项需要调用的函数和迭代的(归并的)初始值

5.1reduce():参数1为需要调用的函数,接受4个参数:前一个值,当前值,索引和迭代的结果

5.2reduceRight()与reduce()的区别是从数组的最后一项开始,向前遍历到第一项

// 一个参数的情况:
// 调用的函数接收 4 个参数:前一个值、当前值、项的索引和数组对象。
var result = arr.reduce(function(q, h, i, a) {
    return q + h;//q:第一次是数组第一项,后面就是算法迭代的结果。
  });
console.log(result); //55


// 两个参数的情况
// 第二个参数就是迭代的初始值(100),使用100去累加这里的1到10
var result = arr.reduce(function(q, h, i, a) {
    return q + h;
    }, 100);
console.log(result); //155

// 2.reduceRight() 方法从数组的最后一项开始,向前遍历到第一项。
var result = arr.reduceRight(function(q, h, i, a) {
    return q + h;
  }, 100);
 console.log(result); //155

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值