-
数组结构器
-
数组的办法:
不扭转原数组:
-
concat(): 拼接数组,合并数组
-
slice():slice( 开始地位索引,完结地位索引):向数组中提取指定元素,蕴含开始,不蕴含完结
-
map():做计算
会扭转原数组:
-
pop(): 删除数组最初一个元素,返回删除的元素值
-
push(): 向数组开端增加多个元素,并返回一个值 ( 数组新长度)
-
shift():与 pop 相同,删除数组第一个元素,返回删除的元素值
-
unshift():与 push 相同,向数组结尾增加多个新元素,并返回一个值 ( 数组新长度)
-
splice():splice( 开始地位索引,删除的数量,传递新元素) : 增加元素,删除指定元素
-
reverse():倒序数组,会影响原数组
-
join():数组转为字符串,返回字符串
遍历办法:
-
forEach():循环
-
every(): 每个元素都满足测试函数 返回 true
-
some(): 数组中至多有一个满足测试函数,返回 true
-
indexOf():
-
findIndex():找到第一个满足测试函数的元素,返回具体索引
-
find():找到第一个满足测试函数的元素,返回值
-
filter():在所有过滤函数中返回 true 的数组元素放进一个新数组,返回数组
-
includes():包含,返回布尔值
-
reduce():数组求和
-
sort():从新排序,会影响原数组,按 Unicode 排序
-
进阶的办法:
-
flat():多维数组转一维数组
-
flatMap():
-
Array.from():将类数组转为数组,
-
Array.of() /fill():将一组值转为数组
-
数组实例的 copyWithin()
-
数组去重
https://juejin.im/post/6844903881500016647
ES6:
-
new set 数组去重:(array.from 或者 扩大运算符)
-
Array.from(new Set(arr))
-
[…new Set(arr)]
-
map 数组去重
-
reduce 去重
-
filter + indexOf 去重:filter(x,index,self)
ES5:
-
双重 for 循环 +splice 去重
-
indexOf 去重
-
includes 去重
-
数组排序
-
Array.prototype.sort() 的排序稳定性
-
reverse() 倒序,sort() 升序
-
数组遍历:
-
for 循环:for、forEach、for…in、for…of(ES6)迭代器 Iterator
-
map、forEach、reduce 求和、filter 过滤、【every、some 区别】
-
ES6:entries(),keys() 和 values()
-
数组求和,求平均数
-
for 循环:for/for 循环优化、forEach、for…in、for…of
-
ES5:while、do…while、递归
-
ES6:every、some、reduce、filter、map、eval(性能差)https://www.cnblogs.com/faithZZZ/p/7063952.html
-
for 循环优化版,最优:
-
reduce
-
for…of 循环
-
尾递归
-
数组求最大最小值,并集,交加,差集
-
数组乱序
-
多维数组转一维数组,手写实现 flat
-
arr.toString().split(‘,’):只实用于数组内全副是数字
-
arr.join().split(‘,’)
-
二维转一维:[].concat(…arr)
手写实现 flat: