常用数组对象整理

429 阅读4分钟

concat()

作用:连接两个或多个数组
返回:不改变原数组,返回一个新的数组
语法:arr.concat(arr1,arr2...arr3)

join()

作用:把数组每一个元素拼接成字符串
返回:不改变原数组,返回一个被连接后的字符串
语法:arr.join(separator)
注意:参数为分隔符,如不传参默认逗号,如不需要符号,要传空字符串

reverse()

作用:反转数组,调转数组元素排列顺序
返回:改变原数组,返回反转后的新数组
语法:arr.reverse()

sort()

作用:用于对数组的元素进行排序
返回:改变原数组,返回重新排序后的新数组
语法:arr.sort(function(a,b){a-b从小到大/a+b从大到小})
注意:要想实现数字排序,必须要传递一个回调函数作为参数来判断排序方式

push()

作用:可在数组的末尾添加一个或多个元素,并返回新的长度
返回:改变原数组,返回添加后的新数组
语法:arr.push(item1,item2, ..., itemX)

unshift()

作用:可在数组的开头添加一个或多个元素,并返回新的长度
返回:改变原数组,返回添加后的新数组
语法:arr.unshift(item1,item2, ..., itemX)

splice()

作用:用于添加或删除数组中的元素
返回:改变原数组,如果删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组
语法:arr.splice(index,howmany,item1,.....,itemX)
参数:index 必需。规定从何处添加/删除元素
howmany 可选。规定应该删除多少元素。必须是数字,但可以是 "0"。

shift()

作用:用于把数组的第一个元素从其中删除,并返回第一个元素的值
返回:数组原来的第一个元素的值(移除的元素)
语法:arr.shift()

pop()

作用:用于删除数组的最后一个元素并返回删除的元素
返回:返回删除的元素
语法:arr.pop()

map()

作用:映射数组(将数组每一个元素处理之后,得到一个新数组)
返回:返回删除的元素
语法:let res = arr.map( (元素,下标)=>{ return item*0.8 })

filter()

作用与场景 : 筛选数组
经典场景 : 筛选,根据条件筛选数组,将符合条件的元素放入新数组中

语法特点 : 循环执行次数 == 数组长度
回调函数内部return作用
(1)return true : 满足筛选条件,当前元素放入新数组中
(2)return false : 不满足筛选条件,当前元素不放入新数组中 map本身返回值作用 筛选之后的新数组

forEach()

forEach作用与场景 : 遍历数组
类似于for循环遍历数组

语法特点 :
循环执行次数 == 数组长度
回调函数内部return作用 无
forEach本身返回值作用 无

some()

some作用与场景 : 判断数组中是否有满足条件的元素 ( 逻辑或|| )
经典场景 : 非空判断。 多个表单只要有一个是空的,就不能提交

语法特点 :
循环执行次数 != 数组长度
回调函数内部return作用
(1)return true : 循环结束。 找到满足条件的元素,此时some的返回值也是true
(2)return false : 循环继续。没有找到满足条件的元素,如果循环执行完毕还是false,最终some的返回值也是false
some本身返回值作用
return true : 有满足条件的元素
return false : 没有满足条件的元素

every()

every作用与场景 : 判断数组是否所有的元素都满足条件 ( 逻辑与&& )
经典场景 : 开关思想. 购物车全选
语法特点 :
循环执行次数 != 数组长度
回调函数内部return作用
(1)return true : 循环继续。 当前元素满足条件,继续判断. 如果循环执行完毕还是true,则every返回值就是true
(2)return false : 循环结束。当前元素不满足条件。 every的返回值也是false every本身返回值作用
return true : 全部元素都满足条件
return false : 有元素不满足

findIndex()

(1). findIndex作用与场景 : 找元素下标
* 数组中的元素是值类型: arr.indexOf()
* 数组中的元素是引用类型: arr.findIndex()

(2).语法特点 :
2.1 循环执行次数 != 数组长度
2.2 回调函数内部return作用
(1)return true : 找到了,循环结束。 此时findIn是当前元素下标
(2)return false : 没找到,循环继续。 如果执行完毕还找不到,最终返回固定值-1
2.3 findIndex本身返回值作用
return -1 : 没有
return 下标 : 有

reduce()

第一个参数:回调 (sum,value,index)=>{}
sum : 累加和变量
value:当前元素
index: 当前下标
return : 下一次回调sum的值
第二个参数: sum初始值
* 如果不传,sum默认是第一个元素值
* 一般要传0, 如果不传,空数组的话reduce直接报错
标准写法
let res = arr.reduce( (sum,value,index)=>{ console.log(sum,value,index) return sum+value } , 0 )
简写 : let res = arr.reduce( (sum,value)=>sum+value , 0 )