JavaScript Array 对象常用方法与属性详解
本文详细介绍JavaScript中Array对象的创建方式、constructor、length和prototype属性,以及concat、join、pop、push、reverse、shift、slice、sort、splice、toSource、toString和unshift等常用数组操作方法,帮助开发者掌握数组处理技巧。
Array对象的创建方式
在JavaScript中,创建Array对象主要有以下几种方式:
第一种是字面量定义法,例如:var arr = [1,2,3];
通过上述定义,可以直观地看到数组元素的索引对应关系。
arr[0] == 1;
arr[1] == 2;
arr[2] == 3;
--->new Array();
var arr = new Array();//定义一个没有任何内容的数组对象,然后以下面的方式为其赋值
arr[0] = "arr0";
arr[1] = "arr1";
arr[2] = "arr2";
--->new Array(size);//定义一个大小有限制的数组对象,然后以下面的方式赋值(赋值方式和上面是一样的)
var arr = new Array(3);
arr[0] = "arr0";
arr[1] = "arr1";
arr[2] = "arr2";
--->new Array(element0, element1, ..., elementn);//直接将数组内容定义好
var arr = new Array("arr0","arr1","arr2");
此时可以明确数组中各元素的值。
arr[0] == "arr0";
arr[1] == "arr1";
arr[2] == "arr2";
Array对象的属性
Array对象包含几个关键属性:
常见的属性包括constructor、length和prototype。
constructor属性用于标识对象的构造器,即表明该对象是由什么类型构成的,通俗来说就是判断对象的类型。
var arr = new Array(3);
if(arr.constructor==Array)
{
document.write("This is an Array");
}
if (test.constructor==Boolean)
{
document.write("This is a Boolean");
}
if (test.constructor==Date)
{
document.write("This is a Date");
}
if (test.constructor==String)
{
document.write("This is a String");
}
上述代码的执行结果为:This is an Array
--->length,即Array的长度
var arr = new Array(3);
document.write(arr.length);//输出结果是3
需要注意的是,在JavaScript中,Array对象的属性是可以被修改的。
因此,我们可以对属性进行重新赋值或扩展。
arr.length=5;
document.write(arr.length);//输出结果是5
--->prototype,使您有能力向对象添加属性和方法。
function myarray(name,age)//定义一个类,此类目前有两个属性
{
this.name = name;
this.age = age;
}
var myarr = new myarray("john",25);
myarray.prototype.test = null;//为myarray类添加了一个属性
myarr.test = "test";
alert(myarr.test);//输出test
数组连接与字符串转换方法
concat()方法用于连接两个或多个数组,生成一个新数组。
该方法主要有两种使用场景:
第一种是直接连接具体的数值或字符串数据。
例如:
var arr = new Array(1,2,3);
alert(arr.concat(4,5));//输出1,2,3,4,5
第二种是连接现有的多个数组对象。
var arr1 = new Array(1,2,3);
var arr2 = [4,5];
var arr3 = new Array("jone","john");
alert(arr1.concat(arr2,arr3));//输出1,2,3,4,5,jone,john
join()方法的作用是将数组中的所有元素合并为一个字符串。
该方法可以接受一个可选参数,用于指定字符串中元素之间的分隔符;如果不提供参数,则默认使用逗号分隔。
--->无参
var arr = new Array("jone","Grrgy","john");
alert(arr.join());//输出jone,Grrgy,john 字符串中间以,隔开
--->有参
var arr = new Array("jone","Grrgy","john");
alert(arr.join("."));//输出jone.Grrgy.john 字符串中间以参数隔开
数组元素的增删改查方法
pop()方法用于移除并返回数组的最后一个元素。
var arr = new Array("jone","john","grrgy");
document.write(arr.pop());//输出内容:grrgy
document.write(arr.join("-"));//输出:jone-john
push()方法用于向数组末尾添加一个或多个元素,并返回添加后的数组新长度。
如果push()方法没有传入参数,则返回数组原有的长度,且不对数组内容做任何修改。
var arr = ["jone","john","grrgy"];
document.write(arr.push("tom"));//输出:4(长度)
document.write(arr.join());//输出:jone,john,grrgy,tom
reverse()方法用于将数组中元素的顺序颠倒,该方法不需要参数。
例如:
var arr = ["jone","john","grrgy"];
document.write(arr.reverse());//grrgy,john,jone
shift()方法用于移除并返回数组的第一个元素。
var arr = ["jone","john","grrgy"];
document.write(arr.shift());//输出:jone
document.write(arr.join());//输出:jone,john
数组截取与排序方法
slice()方法用于从指定数组中截取一部分元素并返回一个新的数组。
该方法接受两个参数:start和end。start是必选参数,指定截取开始的位置;end是可选参数,指定截取结束的位置,若省略则截取到数组末尾。
例如:
var arr = ["jone","john","grrgy","tom","hell"];
var test = arr.slice(1);
if(test.constructor==Array)
{
document.write("This is an Array<br>");
document.write(test.join());
}
最终输出的结果为:
This is an Array john,grrgy,tom,hell
如果将var test = arr.slice(1)修改为:
var test = arr.slice(1,2);
则输出结果为:
john
sort()方法用于对数组元素进行排序,这是一个非常重要的方法。
该方法可以接受一个函数作为参数,用于自定义排序规则。需要注意的是,sort()方法会修改原数组,而不是生成新数组。如果未提供参数,则默认按照字符串字典顺序进行排序。
例如:
var arr = ["jone","john","grrgy","tom","hell"];
document.write(arr.sort());
document.write("<br>");
document.write(arr);
输出结果为:
grrgy,hell,john,jone,tom grrgy,hell,john,jone,tom
下面是按照数字大小进行排序的示例。
function sortNumber(a,b)// 定义排序规则的函数
{
if(a>b)
{
return 1;
}
else if(a<b)
{
return -1;
}
else
{
return 0;
}
}
var arr = new Array(1,2000,3,400);
document.write(arr.sort(sortNumber));//此处只写函数名即可
document.write("<br>");
document.write(arr);
输出:
1,3,400,2000 1,3,400,2000
数组元素的替换与插入方法
splice()方法用于删除、替换或向数组中添加元素。
splice(index,howmany,element1,element2.....elementx)的参数说明如下:
index为必需参数,指定开始添加或删除元素的索引位置,必须为数字。howmany为必需参数,指定删除的元素数量,必须为数字,但可以是0。如果未指定howmany,则删除从index开始到数组末尾的所有元素。当howmany为0时,表示不删除任何元素,仅执行添加操作。element1等为可选参数,指定要添加到数组的新元素,从index指定的位置开始插入,可以插入多个元素。splice()与slice()的区别在于,splice()直接修改原数组并返回被删除的元素组成的数组,而slice()返回新数组且不修改原数组。splice()常用于数组元素的替换、插入或删除操作。
参考以下三个示例:
--->只插入
var arr = new Array(6);
arr[0] = "George";
arr[1] = "John";
arr[2] = "Thomas";
arr[3] = "James";
arr[4] = "Adrew";
arr[5] = "Martin";
document.write(arr + "<br />");
arr.splice(2,0,"William");
document.write(arr + "<br />");
输出结果:
George,John,Thomas,James,Adrew,Martin George,John,William,Thomas,James,Adrew,Martin
此处将William插入到了索引为2的位置。
--->只删除
var arr = new Array(6);
arr[0] = "George";
arr[1] = "John";
arr[2] = "Thomas";
arr[3] = "James";
arr[4] = "Adrew";
arr[5] = "Martin";
document.write(arr + "<br />");
arr.splice(2,1);
document.write(arr + "<br />");
输出结果:
George,John,Thomas,James,Adrew,Martin George,John,James,Adrew,Martin
此处删除了原数组中索引为2的元素。
--->既删除又添加(相当于替换)
var arr = new Array(6);
arr[0] = "George";
arr[1] = "John";
arr[2] = "Thomas";
arr[3] = "James";
arr[4] = "Adrew";
arr[5] = "Martin";
document.write(arr + "<br />");
arr.splice(2,1,"William");
document.write(arr + "<br />");
输出结果:
George,John,Thomas,James,Adrew,Martin George,John,William,James,Adrew,Martin
此处将原数组中索引为2的Thomas替换为了William。
其他数组相关方法
toSource()方法返回对象的源代码字符串,此方法通常在JavaScript引擎内部自动调用,前端开发中较少直接使用。
此外,此方法在IE浏览器中无法实现,例如在Firefox浏览器中。
var myarr = new Array('lisi',25);
document.write(myarr.toSource());
输出结果为:
["lisi", 25]
如果重新定义一个类,则可以显示属性名,例如:
function myarray(name,age)
{
this.name = name;
this.age = age;
}
var myarr = new myarray('lisi',25);
document.write(myarr.toSource());
输出结果为:
({name:"lisi", age:25})
这种格式类似于JSON数据,但实际上并不等同于JSON数据类型。
toString()方法将数组转换为字符串,其效果与join()类似,但join()允许自定义分隔符。
而toString()方法只能使用逗号作为分隔符,例如:
var myarr = new Array('jone','john','Tom');
document.write(myarr.join('.'));
document.write('<br>');
document.write(myarr.join(','));
document.write('<br>');
document.write(myarr.join());
document.write('<br>');
document.write(myarr.toString());
输出结果为:
jone.john.Tom jone,john,Tom jone,john,Tom jone,john,Tom
可以看出,后三种方法的结果是一致的。
unshift()方法用于向数组开头添加一个或多个元素,并返回数组的新长度,同时会修改原数组。
unshift(element1,element2,element3....)至少需要提供一个元素,例如:
var myarr = new Array('jone','john','Tom');
var length = myarr.unshift('zhangsan','lisi');
document.write(myarr);
document.write('<br>');
document.write(length);
输出结果为:
zhangsan,lisi,jone,john,Tom 5
以上介绍了JavaScript中Array对象的相关知识,希望有所帮助。
D3.js 比例尺与坐标轴的配置详解
2026-11-05 16:54:46
JavaScript怎么遍历对象的Symbol键和不可枚举属性
2026-11-05 13:13:39
封装一个健壮的JS字符串判空工具函数
2026-11-05 12:16:14
JavaScript合并数组的三种常用方法:concat、扩展运算符与push
2026-11-05 11:22:29
JavaScript立即执行函数(IIFE)是什么及基本语法
2026-11-05 10:51:19
