【20个数组的方法】--茶楼不缺

130 阅读2分钟

什么是数组

这里不做过多絮叨。--MDN;

数组的方法分类

从下面4点去归类整理增加记忆。

  • 方法的作用和意义
  • 方法的实参
  • 方法的返回值
  • 方法是否改变了原数组

增删类

  1. arr.push() 返回当前的长度,改变原数组
  2. arr.pop() 返回删除的,改变原数组
  3. arr.shift() 从前面删除,返会删除的数组项
  4. arr.unshift() 从前面增加,返会添加后的长度
  5. arr.splice(2,3),从2开始删除3个,返会删除的数组会发生数组塌陷问题,删除中间项,别的索引变化
  • arr.splice(1,0,'新增一项'),在索引1的位置新增一项
  1. arr.slice(1,4) 查找,从1开始到第4项,但是不包含第四项,不修改原来的数组如果不传,arr.slice()返会一个新的数组,和原来的一样。
  2. arr.concat()拼接数组

修改类方法

  1. arr.reverse() 数组反转方法,改变原数组
  2. arr.sort(function(a,b){ return a-b}) 升序改变原数组 a. arr.sort(function(a,b){ return b-a})升序
  3. arr.toString 数组变成字符串
  4. arr.join('+') a.利用 eval(arr.join('+')) // 求和
  5. arr.indeOf() // 查询方法,返会索引,查不到返会-1
  6. arr.includesof() // 返会true
  7. arr.flat() a. 降维,不该变原数据组 b. arr.flat(Infinity) -- 不知层次的数组全部到一层

循环迭代类

  1. forEach a. 可以修改当前数组 b. arr.forEach((item,index)=>{})
  2. map a. 支持return新数组 b. 不该变原数组
  3. reduce a. arr.reduce((result,item,index)=>{}) b. 第一次result是数组第一项,result获取的是回调函数上次返会的值 c. 最后返会所有执行后的回调结果 d. 如果reduce的参数有第二个值,则result的第一个值是第二个参数
  4. reduceRight,从右开始
  5. find a. arr.find(item=>return item === 30),按照指定规则返会数组项--非数组 b. 找到符合就不在继续查找
  6. findeIndex a. arr.findIndex(item=>return item === 30),按照指定规则返会数组项的索引
  7. filter((item)=>return item>10),按照指定规则查找符合项,查找全部的
  8. arr.some((item)=>item>10),只要有一项符合数组的规则,就为true
  9. arr.every((item)=>item>10) ,必须所有项都大于10才为true ...后续继续补充,