欢迎光临
我们一直在努力

js数组基础认识与了解

一、数组基础认知
1. 数组的本质
JavaScript 中的数组本质是一个特殊的对象:
索引(下标)本质是字符串类型的属性名,只是我们习惯写数字
length 是数组的特殊属性,代表元素个数
和其他语言不同,JS 数组是动态长度的,可以随时增删元素,也可以存放不同类型的元素
2. 4 种创建数组的方式
方式 1:字面量创建(最常用,推荐)
用中括号[]直接包裹元素,简单直观,没有坑。
js
运行
// 空数组
let arr1 = []
// 带初始元素的数组
let arr2 = [1, 'hello', true, {name: '张三'}]
方式 2:构造函数 new Array()
通过Array构造函数创建,有坑,新手慎用。
js
运行
// 传多个参数:代表数组元素
let arr = new Array(1, 2, 3) // [1,2,3]

//  传1个数字参数:代表数组长度,不是元素!
let badArr = new Array(3) 
console.log(badArr) // [empty × 3] 长度为3的空数组,没有实际元素
console.log(badArr[0]) // undefined
方式 3:Array.of()(解决构造函数的坑)
无论传几个参数,都统一当作数组元素,专门修复new Array的问题。
js
运行
console.log(Array.of(3))      // [3]  单个数字也会变成元素
console.log(Array.of(1,2,3))  // [1,2,3]
方式 4:Array.from()(类数组转真数组)
把「类数组对象」或「可迭代对象」转换成真正的数组,比如 DOM 集合、字符串、arguments 等。
js
运行
// 字符串转数组
console.log(Array.from('abc')) // ['a','b','c']

// DOM集合转数组(querySelectorAll返回的是类数组,不能直接用map/filter)
let divList = document.querySelectorAll('div')
let divArr = Array.from(divList) // 转成真数组后就能用所有数组方法
3. length 属性详解
数组的length不只是 “读取长度”,它是可写的,利用它可以快速操作数组。
js
运行
let arr = [1,2,3,4,5]
console.log(arr.length) // 5 读取长度

// 1. 截断数组:把length改小,后面的元素会被直接删除
arr.length = 3
console.log(arr) // [1,2,3]

// 2. 拉长数组:把length改大,会产生空位置(稀疏数组)
arr.length = 5
console.log(arr) // [1,2,3, empty × 2] 空位是empty,不是undefined

// 3. 清空数组的最快方法
arr.length = 0
console.log(arr) // []
4. 数组的核心特点
索引从0开始,第一个元素索引是 0,第二个是 1,以此类推
元素类型无限制:同一个数组可以存数字、字符串、对象、数组
动态长度:元素数量可以随时变化,不需要提前声明大小
有序存储:元素的顺序由索引决定,顺序固定
二、数组核心常用操作(全方法详解)
按功能分为 8 大类,每个方法标注是否修改原数组,这是新手最容易搞混的点。
2.1 元素增删(修改原数组)
① 结尾增:push()
作用:向数组末尾添加 1 个或多个元素
返回值:添加后的数组新长度
是否改原数组:是
js
运行
let arr = [1,2,3]
let newLen = arr.push(4, 5)
console.log(arr)    // [1,2,3,4,5]
console.log(newLen) // 5
② 结尾删:pop()
作用:删除数组最后一个元素
返回值:被删除的元素
是否改原数组:是
js
运行
let arr = [1,2,3]
let del = arr.pop()
console.log(arr) // [1,2]
console.log(del) // 3
③ 开头增:unshift()
作用:向数组开头添加 1 个或多个元素
返回值:添加后的数组新长度
是否改原数组:是
js
运行
let arr = [1,2,3]
arr.unshift(0)
console.log(arr) // [0,1,2,3]
④ 开头删:shift()
作用:删除数组第一个元素
返回值:被删除的元素
是否改原数组:是
js
运行
let arr = [1,2,3]
let del = arr.shift()
console.log(arr) // [2,3]
console.log(del) // 1
⑤ 任意位置增删改:splice()(全能方法)
数组中最灵活的方法,可以在任意位置删除、插入、替换元素。
语法:arr.splice(起始索引, 删除个数, 要插入的元素1, 元素2…)
返回值:被删除元素组成的新数组
是否改原数组:是
js
运行
let arr = [1,2,3,4,5]

// 场景1:删除元素 – 从索引2开始,删除2个
let delArr = arr.splice(2, 2)
console.log(arr)    // [1,2,5]
console.log(delArr) // [3,4]

// 场景2:插入元素 – 从索引1开始,删除0个,插入'a'和'b'
arr.splice(1, 0, 'a', 'b')
console.log(arr) // [1, 'a', 'b', 2, 5]

// 场景3:替换元素 – 从索引0开始,删除1个,替换成'hello'
arr.splice(0, 1, 'hello')
console.log(arr) // ['hello', 'a', 'b', 2, 5]

赞(0)
未经允许不得转载:171主机测评 » js数组基础认识与了解
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址