共计 1378 个字符,预计需要花费 4 分钟才能阅读完成。
数组结构器
数组的办法:
不扭转原数组:
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: