常见的数组处理方法,掌握这一些,则在项目中运用基本够用了

270 阅读5分钟
  • concat()

    • 复制当前数组所创建的副本,如果传参,会先创建副本,接收到的参数添加到副本数组的末尾。如果传递其他值,则直接添加到副本数组的末尾
  • splice

    • 删除功能: splice(star,end) star:开始位置的索引,end:要删除元素的个数
    • 插入功能:splice(index,0,insert)index:插入元素的索引值 insert:插入的项
    • 替换功能: splice(index,n,item1,item2,...) index:需要替换的元素的起始位置 n: 需要替换的元素的个数,实质是删除 item1,item2:需要插入元素,用逗号隔开
  • join

    • 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的,默认使用','号分割,不改变原数组。
  • split

    • 方法用于把一个字符串分割成字符串数组 split(separator,howmany) separator: 必填项,字符串或正则表达式,从该参数指定的地方分割 stringObject howmany:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的字符串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
  • indexOf

    • indexOf(item,index) 返回元素在数组中的位置,若没检索到,则返回 -1. item:必填项,查找的元素 index: 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。
  • includes

    • 判断数组中是否存在该元素,参数:查找的值、起始位置,可以替换 ES5 时代的 indexOf 判断方式。indexOf 判断元素是否为 NaN,会判断错误。
  • push

    • 方法可向数组的末尾添加一个或多个元素,并返回新的长度。末尾添加,返回的是长度,会改变原数组。
  • pop

    • 方法用于删除并返回数组的最后一个元素。返回最后一个元素,会改变原数组。
  • substring 和 substr

    • substring(star, end)star:截取字符串从当前下标以后直到字符串最后的字符串片段 end:参数是截取字符串最终的下标 (截取star个位置之间的字符串,‘含头不含尾’)
    • substr(star,end) star:截取字符串从当前下标以后直到字符串最后的字符串片段 end:截取字符串的长度(star截取某个长度的字符串)
  • sort

    • sort(sortby): 按照 Unicode code 位置排序,默认升序 sortby : 可选,用来规定排序的顺序,但必须是函数。
  • some

    • some(item,index,array)对数组中元素进行判断,如果数组中有一个元素满足条件则返回true否则返回false. item:数组中正在处理的元素 index:数组中正在处理的元素的索引值 array:some()被调用的数组 some一直在找符合条件的值,一旦找到,则不会继续迭代下去。
  • every

    • every(item,index,array)对数组中元素进行判断,如果数组中所有项都满足条件则返回true否则返回false. item:数组中正在处理的元素 index:数组中正在处理的元素的索引值 array:every()被调用的数组 对数组的每一项都运行给定的函数,每一项都返回 ture,则返回 true every从迭代开始,一旦有一个不符合条件,则不会继续迭代下去
  • filter

    • filter(item,index,array) 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,但有两点要注意的是1.不会对空数组进行检测 2.不会改变原始数组
  • map

    • map(item,index,array)返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,不会改变原数组
  • forEach

    • forEach(item,index,array) 用于调用数组的每一个元素,并将元素传递给回调函数
  • reduce

    • reduce(prev,cur,index,arr)接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值.prev:必填值。初始值, 或者计算结束后的返回值。 cur:必填值。当前元素 index:可选。当前元素的索引 arr:可选。当前元素所属的数组对象。
  • find

    • 传入一个回调函数,找到数组中符合当前搜索规则的第一个元素,返回它的元素,并且终止搜索。
  • findIndex

    • 传入一个回调函数,找到数组中符合当前搜索规则的第一个元素,返回它的下标,终止搜索。
  • flat()

    • flat()方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
  • Array 转化为 Object

    • es10提出的:低版本不兼容
    一、
    通过 Object.fromEntries, 可以将 Array 转换为 Object:
    const arr = [ ['0', '前端'], ['1', 'Java'], ['2', 'py'] ];
    const obj2= Object.fromEntries(arr);
    console.log(obj2); // { '0': '前端', '1': 'Java', '2': 'py' }
    二、
    const arrName = ['张三', '李四', '王五']
    const arrAge=['20','30','40']
    const arrDec = ['摸鱼1', '摸鱼2', '摸鱼3']
    const obj = arrName.map((item,index)=>{
        return { name: item, age: arrAge[index],dec:arrDec[index]}
    })
    console.log(obj) 
    // [{ name: '张三', age: '20', dec: '摸鱼1' },    { name: '李四', age: '30', dec: '摸鱼2' },    { name: '王五', age: '40', dec: '摸鱼3' }]
    
  • Object 转为 Array

    • 将数组的key和value转化成数组
    Object.keys({ name: '张三', age: 18 }) //['name','age']
    Object.values({ name: '张三', age: 18 }) //['张三',18]
    Object.entries({ name: '张三', age: 18 }) //[[name,'张三'],[age,18]]
    
掌握这一些方法,在项目中处理数组基本上够用了,一定要灵活运用啊, 谢谢观摩!如有其他的方法提出来一起分享哦