什么是数组
这里不做过多絮叨。--MDN;
数组的方法分类
从下面4点去归类整理增加记忆。
- 方法的作用和意义
- 方法的实参
- 方法的返回值
- 方法是否改变了原数组
增删类
- arr.push() 返回当前的长度,改变原数组
- arr.pop() 返回删除的,改变原数组
- arr.shift() 从前面删除,返会删除的数组项
- arr.unshift() 从前面增加,返会添加后的长度
- arr.splice(2,3),从2开始删除3个,返会删除的数组会发生数组塌陷问题,删除中间项,别的索引变化
- arr.splice(1,0,'新增一项'),在索引1的位置新增一项
- arr.slice(1,4) 查找,从1开始到第4项,但是不包含第四项,不修改原来的数组如果不传,arr.slice()返会一个新的数组,和原来的一样。
- arr.concat()拼接数组
修改类方法
- arr.reverse() 数组反转方法,改变原数组
- arr.sort(function(a,b){ return a-b}) 升序改变原数组 a. arr.sort(function(a,b){ return b-a})升序
- arr.toString 数组变成字符串
- arr.join('+') a.利用 eval(arr.join('+')) // 求和
- arr.indeOf() // 查询方法,返会索引,查不到返会-1
- arr.includesof() // 返会true
- arr.flat() a. 降维,不该变原数据组 b. arr.flat(Infinity) -- 不知层次的数组全部到一层
循环迭代类
- forEach a. 可以修改当前数组 b. arr.forEach((item,index)=>{})
- map a. 支持return新数组 b. 不该变原数组
- reduce a. arr.reduce((result,item,index)=>{}) b. 第一次result是数组第一项,result获取的是回调函数上次返会的值 c. 最后返会所有执行后的回调结果 d. 如果reduce的参数有第二个值,则result的第一个值是第二个参数
- reduceRight,从右开始
- find a. arr.find(item=>return item === 30),按照指定规则返会数组项--非数组 b. 找到符合就不在继续查找
- findeIndex a. arr.findIndex(item=>return item === 30),按照指定规则返会数组项的索引
- filter((item)=>return item>10),按照指定规则查找符合项,查找全部的
- arr.some((item)=>item>10),只要有一项符合数组的规则,就为true
- arr.every((item)=>item>10) ,必须所有项都大于10才为true ...后续继续补充,