龚箭

JS数组

JS数组

1. 瞎扯

据了解JS没有真正的数组,其数组是用对象模拟出来的效果.

2. 数组的分类

  • 数组对象
    • 数组对象,顾名思义它是数组,可以使用数组的API,数组对象的原型指向Array.prototype
  • 类数组对象
    • 顾名思义,他不是真正意义上的数组,不能使用数组中的API,其原型指向Object.paototype,因此可以把它看成对象
    • 问题来了,如何将类数组对象转换成js中真正的数组呢?
    • Array.from(类数组对象) //通过ES6提供的句法,可以将一个类数组对象转换成一个数组

3. 数组的常用API

3.1数组的转化

  1. 将字符串转换成数组
    • '1,2,3'.split(',') //[1,2,3]
  2. 合并数组
    • [1,2,3].concat([4,5,6]) //[1,2,3,4,5,6]
  3. 将数组转为字符转
    • [1,2,3].join(',') // 1,2,3
  4. 截取字符串
    -[1,2,3].slice(1,1) //[2]

    3.2 删除数组

  5. 删除数组第一项
    • [1,2,3].shift() // [2,3]
      1. 删除最后一项
      • [1,2,3].pop() // [1,2]
      1. 删除中间项
    • [1,2,3,4,5].splice(1,1) // [1,3,4,5] 从下标1开始往后删一个

3.3 增加&修改数组

  1. 在第一项追加

    • [1,2,3].unshift(0) // [0,1,2,3]
    1. 在最后一项追加
    • [1,2,3].push(0) //[1,2,3,0]
    1. 在中间追加
    • [1,2,3].splice(1,0,4) // [1,4,2,3]

    3.4 查找数组

    1. 查找下标
      • [1,2,3].indexOf(1) // 0 有的返回下标,没有返回-1
    2. 返回匹配值
      • [1,2,3].find((item)=>{return item>2}) // 3 有的返回值,没有返回false
    3. 返回匹配的下标
      • [1,2,3].findIndex((item)=>{return item>2}) // 2 有的返回下标,没有返回false

3.4 数组新特性

  1. 反转
    • [1,2,3].reverse() //[3,2,1]在这里插入代码片`
  2. map
    • [1,2,3,4].map((item)=>{return item+1}) // [2,3,4,5]
  3. filter 过滤
    • [1,2,3,4,5,6].filter((item)=>{return item%2===0}) // [2,4,6]
  4. reduce
    • [1,2,3,4].reduce((sum,item)>{return sum+time},0) // 10

47

文章

12

标签