JavaScript 数组对象的属性、方法
JavaScript 数组是编程中最常用的数据结构之一,它提供了丰富的属性和方法,用于存储和操作有序的数据集合。本文将系统介绍 JavaScript 数组对象的三大属性和八大类方法,并通过示例代码和图表深入解析其用法和行为。
二、数组对象的三大属性
1. length
属性
length
属性表示数组中元素的个数。JavaScript 数组的 length
是动态的,可以随时修改。
var arr = [12, 23, 5, 3, 25, 98, 76, 54, 56, 76]; // 定义一个包含10个数字的数组
alert(arr.length); // 输出: 10arr.length = 12; // 扩展数组长度
alert(arr.length); // 输出: 12
alert(arr[8]); // 输出: 56arr.length = 5; // 截断数组
alert(arr[8]); // 输出: undefined(元素被丢弃)arr.length = 10; // 恢复长度
alert(arr[8]); // 输出: undefined(无法恢复丢弃的元素)
🔍 隐式修改:访问或设置超出当前长度的索引会自动扩展数组:
arr[15] = 34; // 设置第16个元素
alert(arr.length); // 输出: 16
2. prototype
属性
prototype
允许为所有数组实例添加自定义方法:
// 定义求最大值的方法
function array_max() {var i, max = this[0];for (i = 1; i < this.length; i++) {if (max < this[i]) max = this[i];}return max;
}Array.prototype.max = array_max; // 添加到原型
var x = new Array(1, 2, 3, 4, 5, 6);
var y = x.max(); // y = 6
3. constructor
属性
constructor
指向创建该数组的构造函数:
var arr = new Array();
if (arr.constructor === Array) {console.log("该对象是数组");
}
三、数组的八大操作方法
1. 创建数组
var arr1 = new Array(); // 空数组
var arr2 = new Array(5); // 长度为5的数组
var arr3 = new Array(1, 2, 3); // 带初始值的数组
2. 访问元素
var value = arr[0]; // 获取第一个元素
arr[0] = 100; // 修改第一个元素
3. 添加元素
// 在末尾添加
arr.push(6, 7); // 返回新长度// 在开头添加
arr.unshift(-1, 0); // 返回新长度// 在指定位置插入
arr.splice(2, 0, 99); // 从索引2插入99,删除0个元素
4. 删除元素
arr.pop(); // 删除最后一个元素
arr.shift(); // 删除第一个元素
arr.splice(1, 2); // 从索引1开始删除2个元素
5. 截取与合并
var sub = arr.slice(1, 3); // 截取索引1到2的元素
var newArr = arr.concat([6, 7]); // 合并新数组
6. 拷贝数组
var copy1 = arr.slice(0); // 浅拷贝
var copy2 = arr.concat(); // 浅拷贝
var deepCopy = JSON.parse(JSON.stringify(arr)); // 深拷贝(适用于简单数据)
7. 排序与反序
arr.reverse(); // 反序
arr.sort(); // 默认按字符串排序
arr.sort((a, b) => a - b); // 数字升序排序
8. 数组转字符串
var str = arr.join("|"); // 用"|"连接元素
console.log(arr.toString()); // 逗号连接的字符串
四、UML 关系图(Mermaid)
五、单词表(用于学习参考)
单词/短语 | 音标 | 词性 | 词根/词缀 | 释义 | 搭配 | 例子 |
---|---|---|---|---|---|---|
array | /əˈreɪ/ | noun | - | 数组 | create an array | let arr = new Array(); |
prototype | /ˈproʊtətaɪp/ | noun | proto- + type | 原型 | prototype property | Array.prototype.method |
constructor | /kənˈstrʌktər/ | noun | construct + -or | 构造函数 | constructor function | new Array() |
splice | /splaɪs/ | verb | - | 拼接 | array.splice() | arr.splice(1, 2) |
concat | /kənˈkæt/ | verb | con- + cat | 连接 | array.concat() | arr.concat([1,2]) |
slice | /slaɪs/ | verb | - | 切片 | array.slice() | arr.slice(0, 2) |
length | /leŋθ/ | noun | long + -th | 长度 | array.length | arr.length = 10 |
reverse | /rɪˈvɜrs/ | verb | re- + verse | 反转 | array.reverse() | arr.reverse() |
sort | /sɔrt/ | verb | - | 排序 | array.sort() | arr.sort((a,b) => a-b) |
七、总结
JavaScript 数组是灵活且强大的数据结构,通过其动态的 length
属性、可扩展的 prototype
和丰富的内置方法,开发者可以高效地处理数据集合。理解这些特性并熟练运用相关方法,是提升 JavaScript 编程能力的关键。