JS数组常用方法

数组中的常用方法

map

  做映射关系处理,

  1.数组过滤获取每一项的一个字段

    let arr = [{id:1,name:'张三'},{id:2,name:'李四'}]
    let ids = arr.map(d => d.id);

  2.数组映射每一项增加字段或者对象

    let arr = [{id:1,name:'张三'},{id:2,name:'李四'}]
    let newArr = arr.map(d => {return {...d,age:'20'}})

flatMap    

  做映射处理并展开,数组过滤如果每一项的某个字段是一个数组,映射完成后会变成双重数组,flatMap会将内层数组给去掉

    let arr = [{id:1,name:'张三',hobbys:[1,2,3]},{id:2,name:'李四',hobbys:[4,5,6]}]
    let newArr = arr.flatMap(d => d.hobbys)
    // [1,2,3,4,5,6]

join

  将数组拼接成字符串 : 返回拼接好的字符串
  arr.join(’-’) //‘1-2-3’

push

  将数组最后添加1或多项 : 返回修改后数组的长度
  arr.push(4) //[1,2,3,4]

pop

  将数组末尾删除一项 : 返回移除的项
  arr.pop() //[1,2]

unshift

  和push相似. 将参数添加到数组第一项 : 返回数组的长度
  arr.unshift(0) //[0,1,2,3]

shift

  和pop相似. 删除数组第一项 : 返回移除的项; 数组为空的则返回underfined
  arr.shift() //[2,3]

sort

  数组从小到大排列, 字母也可以: 返回变化后的原数组
  arr.sort() // [1,2,3]

reverse

  翻转数组 : 返回翻转后的变化后的原数组
  arr.reverse() // [3,2,1]

concat

  拼接两个数组,原数组不变 : 返回拼接后的新数组
  arr.concat([5, 6]) // [1,2,3,5,6]

slice

  截取数组.原数组不变

  有两个参数: 都是数组下标

  参数有一个时: 返回去掉这些项后的新数组
  arr.slice(1) // [2,3]

  参数有两个时: 返回截取的新数组
  arr.slice(1,2) // [2]

splice

  可以删除,添加,替换数组元素, 改变原数组

  参数有两项时:
  从第0项开始,删除两项. 返回被删除的数组元素 [1,2]
  arr.splice(0,2) / / [3]

  参数有三项及以上:
  从第二项开始删除一项:将2删了,添加进10,11进数组.
  返回被删除的数组元素
  arr…splice(2, 1, 10,11) // [1,10,11,3]
  如果第二个参数为0则代表只增加元素 : 返回空数组
  arr…splice(2, 0, 10,11) // [1,2,10,11,3]

indexof

  查找数组中的元素 : 返回要找到的元素索引. 找不到 : 返回-1
  arr.indexof(2) // 2

includes

  includes() 查找数组中的元素有则 : 返回 true否则false
  arr.includes(1) // true
  注: 区别, 增强了对NaN的判断, 用indexof在数组中找NaN必定返回-1
  而includes方法则会正确找到

fill

  填充数组, 改变原数组: 返回改变后的原数组
  arr.fill(22) //[22, 22, 22]

forEach

  历数组.进行函数运算: 没有返回值

  三个参数分别为
    1.遍历的那个元素
    2.对应的索引
    3.数组本身

filter

  遍历数组,过滤符合条件的数组元素 : 返回合条件的新数组

every和some

  遍历数组, 判断元素是否在数组中存在 : 返回true或者false
  every : 全部符合才返回true
  some: 有一项符合就返回true

reduce

  arr.reduce((sum, it) => { return sum + it },0)

find和findIndex

  find() 找到第一个符合条件的成员 : 返回数组成员
  fundIndex() 找到第一个符合成员的索引 : 返回索引值

原文地址:https://www.cnblogs.com/linqing001/p/14011495.html