24. JS Array(数组)对象
1. 前言
数组是值的有序集合,数组中的每个值称为一个元素,每个元素在数组中都有一个数字位置,称为索引,索引从 0 开始,依次递增。在 JavaScript 中,您可以使用 Array 对象定义数组,此外,Array 对象中还提供了各种有关数组的属性和方法。
创建 Array 对象的语法格式如下:
1 2 | var arr = new Array(values); var arr = Array(values); |
其中,values 为数组中各个元素组成的列表,多个元素之间使用逗号分隔。
示例代码如下:
1 2 | var fruits = new Array( "apple" , "orange" , "mango" ); console.log(fruits); // 输出:["apple", "orange", "mango"] |
提示:在使用 new Array() 来定义数组时,如果只提供一个数值参数,那么这个数值将用来表示数组的初始长度,例如new Array(5)
表示定义一个长度为 5 的数组。JavaScript 中,数组允许的最大长度为 2³²-1,即 4294967295。
除了可以使用 Array() 函数来定义数组外,您也可以直接使用方括号[ ]
来定义数组,[ ]
中为数组中的各个元素,多个元素之间使用逗号,
进行分隔。示例代码如下:
1 2 | var fruits = [ "apple" , "orange" , "mango" ]; console.log(fruits); // 输出:(3) ["apple", "orange", "mango"] |
您可以通过数组的索引来访问数组中的各个元素,示例代码如下:
1 2 3 4 | var fruits = [ "apple" , "orange" , "mango" ]; document.write(fruits[0] + "<br>" ); // 输出:apple document.write(fruits[1] + "<br>" ); // 输出:orange document.write(fruits[2] + "<br>" ); // 输出:mango |
2. Array 对象中的属性
下表中列举了 Array 对象中提供的属性及其描述信息:
属性 | 描述 |
---|---|
constructor | 返回创建数组对象的原型函数 |
length | 设置或返回数组中元素的个数 |
prototype | 通过该属性您可以向对象中添加属性和方法 |
示例代码如下:
1 2 3 4 5 6 | var cars = new Array( "Saab" , "Volvo" , "BMW" ); Array.prototype.name = null ; cars.name = "JavaScript" ; document.write(cars.constructor + "<br>" ); // 输出:function Array() { [native code] } document.write(cars.length + "<br>" ); // 输出:3 document.write(cars.name + "<br>" ); // 输出:JavaScript |
3. Array 对象中的方法
下表中列举了 Array 对象中提供的方法及其描述信息:
方法 | 描述 |
---|---|
concat() | 拼接两个或更多的数组,并返回结果 |
copyWithin() | 从数组的指定位置拷贝元素到数组的另一个指定位置中 |
entries() | 返回数组的可迭代对象 |
every() | 检测数值元素的每个元素是否都符合条件 |
fill() | 使用一个固定值来填充数组 |
filter() | 检测数值元素,并返回符合条件所有元素的数组 |
find() | 返回符合传入函数条件的数组元素 |
findIndex() | 返回符合传入函数条件的数组元素索引 |
forEach() | 数组每个元素都执行一次回调函数 |
from() | 通过给定的对象中创建一个数组 |
includes() | 判断一个数组是否包含一个指定的值 |
indexOf() | 搜索数组中的元素,并返回它所在的位置 |
isArray() | 判断对象是否为数组 |
join() | 把数组的所有元素放入一个字符串 |
keys() | 返回数组的可迭代对象,包含原始数组的键(key) |
lastIndexOf() | 搜索数组中的元素,并返回它最后出现的位置 |
map() | 通过指定函数处理数组的每个元素,并返回处理后的数组 |
pop() | 删除数组的最后一个元素并返回删除的元素 |
push() | 向数组的末尾添加一个或更多元素,并返回数组的长度 |
reduce() | 累加(从左到右)数组中的所有元素,并返回结果 |
reduceRight() | 累加(从右到左)数组中的所有元素,并返回结果 |
reverse() | 反转数组中元素的顺序 |
shift() | 删除并返回数组的第一个元素 |
slice() | 截取数组的一部分,并返回这个新的数组 |
some() | 检测数组元素中是否有元素符合指定条件 |
sort() | 对数组的元素进行排序 |
splice() | 从数组中添加或删除元素 |
toString() | 把数组转换为字符串,并返回结果 |
unshift() | 向数组的开头添加一个或多个元素,并返回新数组的长度 |
valueOf() | 返回数组对象的原始值 |
示例代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var fruits = [ "Orange" , "Banana" , "Apple" , "Papaya" , "Mango" ]; document.write(fruits.entries() + "<br>" ); // 返回:[object Array Iterator] document.write(fruits.includes( "Apple" ) + "<br>" ); // 返回:true document.write(fruits.fill( "grape" ) + "<br>" ); // 返回:grape,grape,grape,grape,grape var fruits = [ "Orange" , "Banana" , "Apple" , "Papaya" , "Mango" ]; document.write(fruits.indexOf( "Mango" ) + "<br>" ); // 返回:4 document.write(Array.isArray(fruits) + "<br>" ); // 返回:true document.write(fruits. join ( "-" ) + "<br>" ); // 返回:Orange-Banana-Apple-Papaya-Mango document.write(fruits.lastIndexOf( "Banana" ) + "<br>" ); // 返回:1 document.write(fruits.pop() + "<br>" ); // 返回:Mango document.write(fruits.push( "Watermelon" ) + "<br>" ); // 返回:5 document.write(fruits.unshift( "Lemon" , "Pineapple" ) + "<br>" ); // 返回:7 document.write(fruits.slice(1, 5) + "<br>" ); // 返回:Pineapple,Orange,Banana,Apple document.write(fruits.sort() + "<br>" ); // 返回:Apple,Banana,Lemon,Orange,Papaya,Pineapple,Watermelon document.write(fruits.valueOf() + "<br>" ); // 返回:Apple,Banana,Lemon,Orange,Papaya,Pineapple,Watermelon |
分类:
JavaScript
标签:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律