面试过程中遇到js操作数组的具体实现和返回值的提问,自己对于这部分知识不熟练,故而专门整理出来进行运行学习

操作数组方法

含义

返回值

数据实现截图

是否改变原数组

arr.push()

数组尾部添加

返回添加元素

javascript 函数传递数组 js传递数组参数_javascript 函数传递数组

改变原数组

arr.unshift()

数组头部添加

返回数组的长度

javascript 函数传递数组 js传递数组参数_数组_02

改变原数组

arr.pop()

删除数组的最后一个元素

返回删除的数据

javascript 函数传递数组 js传递数组参数_javascript_03

改变原数组

arr.shift()

移除数组的第一个元素

返回移除的数据

javascript 函数传递数组 js传递数组参数_javascript 函数传递数组_04

改变原数组

arr.slice(strat,end)

1、不传参数

2、一个参数:索引开始截取到数组结束

3、两个参数:索引开始,到第二个参数索引结束(包含第二个参数)

1、不传参数:返回原数组

2、一个参数:返回截取数组

3、两个参数:返回截取数组

4、返回的数组均不包含第一个参数索引处值,包含第二个参数索引处值

javascript 函数传递数组 js传递数组参数_数组_05

原数组不变

arr.splice()

arr.splice(参1)

arr.splice(参1,参2)

arr.splice(参1,参2,参3)

1、不传参

2、一个参数:索引处开始截取到数组结束

3、两个参数:索引开始,第二个参数表示截取的长度

4、三个或更多参数:第三个和之后的参数表示要从截取位插入的值

1、不传参数:返回空数组

2、传参数:返回截取数组

javascript 函数传递数组 js传递数组参数_字符串_06

1、不传参数:原数组不变

2、一个参数:改变原数组

3、两个参数:改变原数组

4、三个参数以上:改变原数组

arr.reverse()

数组顺序倒序

返回倒序之后的数组

javascript 函数传递数组 js传递数组参数_数组_07

改变原数组

arr.sort()

进行数组的排序

正确的理解:需要在sort中进行函数的定义来升序或降序

错误的理解:从小到大进行排序

返回排序之后的数组

javascript 函数传递数组 js传递数组参数_字符串_08

改变原数组

arr.join()

将数组作为字符串返回,由指定的分隔符进行分割,默认分隔符为( , )

返回分割之后的字符串

javascript 函数传递数组 js传递数组参数_javascript_09

原数组不变

string.concat()

将多个数组或字符串进行拼接,拼接在原数组、字符串后面。

此方法属于字符串,数组也可以使用。

返回拼接之后的数组或字符串

javascript 函数传递数组 js传递数组参数_字符串_10

原数组不变

ES5新增

arr.map()

遍历数组

有值:返回计算之后的数组

数组为空时返回也为空数组

javascript 函数传递数组 js传递数组参数_数组_11

原数组不变

forEach()

遍历数组

返回值为undefined

换种说法:不接受返回值或者返回undefined

javascript 函数传递数组 js传递数组参数_javascript_12

原数组不变

indexOf()

字符串或数组的方法

判断元素是否在数组中

若在返回在数组中的索引

不在返回-1

javascript 函数传递数组 js传递数组参数_数组_13

原数组不变

filter()

过滤符合条件的元素

返回一个满足条件的新数组

javascript 函数传递数组 js传递数组参数_javascript_14

原数组不变

some()

数组中有任意一个元素满足条件则返回true,反则返回false

返回布尔值:true或者false

javascript 函数传递数组 js传递数组参数_传参数_15

原数组不变

every()

数组中所有的元素都符合条件则返回true,反则false

返回布尔值:true或者false

javascript 函数传递数组 js传递数组参数_数组_16

原数组不变

reduce()

数据累加

返回值累加结果

javascript 函数传递数组 js传递数组参数_数组_17

原数组不变

ES6新增

... 复制数组

复制数组,合并数组

返回复制的数组或合并的数组

javascript 函数传递数组 js传递数组参数_数组_18

原数组不变

find()

遍历查找数组中符合条件的元素,若有符合条件的元素,则返回第一个元素

1、多个满足条件返回第一个值

2、无满足条件时返回undefined

javascript 函数传递数组 js传递数组参数_javascript_19

原数组不变

findIndex()

遍历查找符合条件的元素索引

1、返回满足条件的第一个索引值

2、数组空位返回undefined

javascript 函数传递数组 js传递数组参数_javascript_20

原数组不变

keys()

遍历键名

包含索引值的数组

javascript 函数传递数组 js传递数组参数_数组_21

原数组不变

values()

遍历键值

包含键值的数组

javascript 函数传递数组 js传递数组参数_传参数_22

原数组不变

fill()

将一定范围索引的数组元素内容填充为单个指定的值

1、返回填充之后数组

2、无参数时返回对应长度的数组,数组中均为undefined

javascript 函数传递数组 js传递数组参数_传参数_23

改变原数组

includes()

检测数组中是否包含一个值

返回布尔值false或true

javascript 函数传递数组 js传递数组参数_数组_24

原数组不变

array.of()

数组创建,将参数中的所有值转换为数组


参数可以是不同类型,最后返回到一个数组中

返回数组,无参数则为空数组

javascript 函数传递数组 js传递数组参数_字符串_25

改变原数组

array.from()

将类数组对象或可迭代对象转换为数组

返回数组

javascript 函数传递数组 js传递数组参数_javascript_26

改变原数组

sort函数正确解析:

JavaScript Array sort() 方法解析_偷吃零食的小猫咪的博客