Array数组

本文详细解析了JavaScript中数组的各种方法,包括添加、删除、遍历、连接、排序等操作,以及数组方法的链式使用技巧,是前端开发者的实用指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Array常用方法

a、添加元素到第一个:unshift()

b、添加元素到最后一个:push()

c、删除第一个元素:shift()

d、删除最后一个元素:pop()

e、删除指定元素:splice()

举例:var aa = [11, ‘aa’, 518, ‘cc’]; aa.splice(1, 1); //删除第二个元素

f、添加元素到指定位置

举例:
     var aa = [‘aa’, ‘cc’, 55];  aa.splice(1, 0, ‘dd’, ‘ee’); //将元素’dd’, ‘ee’ 添加到索引1位置

g、遍历元素:map(), forEach();

h、数组元素连接成字符串:join(), 数组之间的合并:concat()

i、查找元素索引:indexOf(), lastIndexOf()

j、部分元素提取:slice()

k、元素反转: reverse()

l、元素排序: sort()

m、元素遍历累计:reduce() , rightReduce()

n、数组元素过滤: filter()

Array.isArray方法用来判断一个值是否为数组。它可以弥补typeof运算符的不足。
View Code

Array的实例方法:

1、valueOf(),toString()

valueOf() : 返回数组本身;

toString() : 返回数组的字符串形式
View Code

2、push()

 用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度。该方法会改变原数组。

View Code

合并两个数组:
View Code

3 、pop()

用于删除数组的最后一个元素,并返回该元素。该方法会改变原数组
View Code

4、join()

方法以参数作为分隔符,将所有数组成员组成一个字符串返回。如果不提供参数,默认用逗号分隔

var a = [1, 'aaa', 33, 88, {"name":"大锤"}];
console.log(a.join());        //1,aaa,33,88,[object Object]
console.log(a.join(' | '));  // 1 | aaa | 33 | 88 | [object Object]
console.log(a.join('^_^'));  // 1^_^aaa^_^33^_^88^_^[object Object]

5、concat()

用于多个数组的合并。它将新数组的成员,添加到原数组的尾部,然后返回一个新数组,原数组不变。
View Code

6 shift()

用于删除数组的第一个元素,并返回该元素。该方法会改变原数组
View Code

push和shift结合使用,就构成了“先进先出”的队列结构(queue)。

7 unshift()

用于在数组的第一个位置添加元素,并返回添加新元素后的数组长度。该方法会改变原数组  
View Code

8 reverse()

用于颠倒数组中元素的顺序,返回改变后的数组。该方法将改变原数组。
View Code

9 slice()

方法用于提取原数组的一部分,返回一个新数组,原数组不变。
View Code

slice方法的一个重要应用,是将类似数组的对象转为真正的数组:
View Code

10 splice()

用于删除原数组的一部分成员,并可以在被删除的位置添加入新的数组成员,返回值是被删除的元素。该方法会改变原数组。

splice的第一个参数是删除的起始位置,第二个参数是被删除的元素个数。如果后面还有更多的参数,则表示这些就是要被插入数组的新元素
View Code

11 sort()

对数组成员进行排序,默认是按照字典顺序排序。排序后,原数组将被改变
View Code

sort方法不是按照大小排序,而是按照对应字符串的字典顺序排序;

可以自定义排序方式:
View Code

12 map()

对数组的所有成员依次调用一个函数,根据函数结果返回一个新数组。
View Code

map方法不仅可以用于数组,还可以用于字符串,用来遍历字符串的每个字符。但是,不能直接使用,而要通过函数的call方法间接使用,或者先将字符串转为数组,然后使用。
View Code

13 forEach()

forEach方法与map方法很相似,也是遍历数组的所有成员,执行某种操作,但是forEach方法一般不返回值,只用来操作数据。如果需要有返回值,一般使用map方法。

forEach方法的参数与map方法一致,也是一个函数,数组的所有成员会依次执行该函数。它接受三个参数,分别是当前位置的值、当前位置的编号和整个数组。 
View Code

forEach方法也可以接受第二个参数,用来绑定回调函数的this关键字;

这个参数对于多层this非常有用,因为多层this通常指向是不一致的。
View Code
View Code

关于数组的for循环和forEach 对于关键字continue、break、return的支持

for循环里支持continue、break、return关键字,continue进入下一个循环;break跳出循环;return直接返回不再往下执行代码;

forEach不支持continue和break(使用会运行报错), 支持return关键字;碰到return表示跳出当前循环,执行下一个循环; map同forEach
View Code

14 filter()

filter方法的参数是一个函数,所有数组成员依次执行该函数,返回结果为true的成员组成一个新数组返回。该方法不会改变原数组。
View Code

15 some(),every()

这两个方法类似“断言”(assert),用来判断数组成员是否符合某种条件。

它们接受一个函数作为参数,所有数组成员依次执行该函数,返回一个布尔值。该函数接受三个参数,依次是当前位置的成员、当前位置的序号和整个数组。

some方法是只要有一个数组成员的返回值是true,则整个some方法的返回值就是true,否则false。
View Code

16 reduce(),reduceRight()

reduce方法和reduceRight方法依次处理数组的每个成员,最终累计为一个值。

它们的差别是,reduce是从左到右处理(从第一个成员到最后一个成员),reduceRight则是从右到左(从最后一个成员到第一个成员),其他完全一样。

这两个方法的第一个参数都是一个函数。该函数接受以下四个参数。

1) 累积变量,默认为数组的第一个成员

2)当前变量,默认为数组的第二个成员

3)当前位置(从0开始)

4)原数组

这四个参数之中,只有前两个是必须的,后两个则是可选的。
View Code

利用reduce方法,可以写一个数组求和的sum方法。
View Code

如果要对累积变量指定初值,可以把它放在reduce方法和reduceRight方法的第二个参数。
View Code

17 indexOf(),lastIndexOf()

indexOf方法返回给定元素在数组中第一次出现的位置,如果没有出现则返回-1;

lastIndexOf方法返回给定元素在数组中最后一次出现的位置,如果没有出现则返回-1;
View Code

18 数组的链式使用

上面这些数组方法之中,有不少返回的还是数组,所以可以链式使用。
View Code

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值