JS 数组

87 阅读2分钟

创建数组

有三种方式:

  1. let arr = [1,2,3]

  2. let arr = new Array(1,2,3)

  3. let arr = new Array(3)

还有别的方式创建数组:

转化:
  • 第一种:

    let str = '1,2,3'
    str.split(',') // split 意思是 用什么来分隔这个函数
    
  • 第二种:

     let str2 = '123'
     str2.split('') // 用空字符
    
  • 第三种:

     // 还有一种就是最新的 es 标准提供的
     Array.from('123') // 它会把不是字符串的东西 尝试变成字符串
    

这个 Array.from 不是所有东西都可以变成数组,必须要满足两个条件:

一:要有下标

二:要有 length


另一种:伪数组

let divList = document.querySelectorAll('div')
// 把divArray 就是把 不是数组的东西,通过 Arry.from 变成数
let divArray = Array.from(divLsit) 
console.dir(divArray)

还可以通过合并得到新的数组

 > 还有什么方法呢!
 
 ```javascript
 let arr3 = [3,3,3]
 let arr4 = [4,4,5]
 arr3.concat(arr4) // 就是连接的意思
 ```
 
 ```javascript
 let arr1 = ['1','2','3','4','5','6']
 arr1.slice(2) // 从第二个元素开始
 ```

把它复制一份:

  ```javascript 
    let arr6 = arr5.slice(0) //从你的第零个开始切过来,经常用来复制一个数组
  ```

注意 JS 只提供浅拷贝


Q&A

Q:什么是伪数组?

A: 一个数组原型链中没有那些数组所共有属性


增删改查

删:

    let arr =['a','b','c']
    delete arr['0']
    arr

如果删掉第一个,长度还是 3

非常的神奇长度并不会变

截屏2022-05-10 16.18.47.png

如果把 中间的 b 和 c 都删掉,长度还是3 这种只有长度但是没有对应的下标这种叫做

JS 稀疏数组

这其实是对象的删法 是不太推荐的!!!

Q:如果把 length 删了呢!

let arr = [1,2,3,4,5]
arr.length = 2
arr // 把后面全删了

忠告:不要随便改 length


有三种方法删元素

  • 删除头部的元素: arr.shift()

就是把另外一个往外弹出出去啦!

let arr1 = [1,2,3]
arr1 // [2,3]
  • 删除尾部的元素: arr.pop()

如果要删除最后一个元素 用 pop

let arr2 = [1,2,3]
arr1.pop() // [1,2] 3 就弹出来啦!
  • 删除中间的元素:

    arr.splice(index,1) // index表示 下标第几个  1 表示 删几个 
    arr.splice(index,1,'x') //  x 表示 在删除位置添加 'x'
    arr.splice(index,1,'x','y')
    

arr.splice 也可以代表前面两个

一个对象提供的函数就叫做api