企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 扩展运算符 1. ...将数组转换为用逗号分隔的参数序列:...[1,2,3] => 1,2,3 [...doucment.querySelectorAll('div')] => [ div, div, div ] 2. ...后可以跟表达式:...( x > 1 ? [ 1 ] : [ ] ) 空数据不产生任何效果 3. 替代apply函数调用时的数组传参 4. 求最大值:Math.max( ...[1,2,3] ) 6. 合并数组:[ ..arr1, ...arr2 ] [ 1,2,3 ].push( ...[ 4,5,6 ] ) 7. 复制数组 const arr1 = [ ...arr2 ] 8. 与解构赋值一起使用时,扩展运算符只能放在最后:const [ a, ...b ] = [ 1,2,3,4 ] a:1 b:[ 2,3,4 ] 9. 转换字符串:[ ...'hello' ] => [ h,e,l,l,o ] 10. 任何部署了Iterator接口的数据结构都可以转换为数组,只要部署了Iterator接口,就可以使用扩展运算符 ### 数组扩展 1. Array.from():将类数组对象和具有iterator接口的对象转换为真正的数组 类数组对象最大的特征,是拥有length属性,只要有这个属性就可以转换为真正的数组:arguments || NodeList( DOM集合 ) Array.from可以接收第二个参数:为一个函数,相当于map方法,对转换的每个类数组元素进行处理 2. Array.of():创建数组,解决Aarry()函数创建数组时因参数个数不同产生的差异结果 [ ].find( fn ):查找第一个符合条件的元素 [ ].findIndex( fn ):查找第一个符合条件的元素索引 3. Array.includes() Array.keys() Array.values() Array.entries() 4. [ ].flat():将多维数组转换为一维数组,传入Infinity将多级数组转平,默认只转一级 5. 数组方法较多,ES5 ES6各个方法对于数组内的空位处理不一致,需要避免这个问题