JavaScript数组对象常用操作汇总
数组是一种存储数据的常用方式,在我们平时的开发中会经常会用到。本文是我结合网上查找的一些资料以及这段时间自身开发和实践整理的关于js数组的常用操作的介绍。
1. 数组的创建和初始化
var arrayObj=[] ;//这是最便捷的创建数组方法 var arrayObj =newArray();//通过new Array对象来创建 var arrayObj =newArray([size]);//创建一个数组并指定长度,这里的size不是上限,只是长度 var arrayObj =newArray([element0[, element1[, ...[, elementN]]]]);//创建一个数组并赋值 |
说明:虽然在第二种方法创建数组时指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。另外赋值的对象也可以是多种多样的,可以是普通的字符串、数字或者布尔值,也可以是数组或者是json对象。以下赋值或者数组中添加对象规则跟此处是一样的。
2. 数组的元素的访问和赋值
var testGetArrValue=arrayObj[1]; //获取数组的元素值 arrayObj[1]= "这是新值"; //给数组元素赋予新的值 |
3. 数组元素的添加
arrayObj. push([item1 [item2 [...[itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度 arrayObj.unshift([item1 [item2 [...[itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度 |
4. 数组元素的删除
arrayObj.pop(); //移除最后一个元素并返回该元素值 arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移 arrayObj.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数deleteCount的元素,数组形式返回所移除的元素 |
5. 数组的截取和合并
arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素 arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组 |
6. 数组的拷贝
arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向 arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向 |
7. 数组的排序
arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址 arrayObj.sort(sortFunction); //对数组元素排序,返回数组地址,sortFunction可选项,用来确定元素顺序的函数的名称。如果这个参数被省略, 那么元素将按照 ASCII 字符顺序进行升序排列。如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一: 负值,如果所传递的第一个参数比第二个参数小。 零,如果两个参数相等。 正值,如果第一个参数比第二个参数大。
|
8. 将数组转化为字符串
arrayObj.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。 |
9. 示例
<script language="javascript"> //该示例展示数组常用的操作,包括初始化、增加、删除、排序等操作; //1、数组初始化 //1.1 创建一个空数组对象arrObj1 var arrObj1=[]; //1.2 创建一个数组对象并且对数组进行初始化,初始化得数组可以为任意对象,如:数字,字符串,数组,json对象 等 var arrObj2=['张三','男','23',[1,2,3],{'descr':"拓尔思新员工"}]; //1.3 采用new方法创建一个数组 var arrObj3=new Array(); //1.4 采用new方法创建一个数组,并且对数组进行初始化 var arrObj4=new Array('2','0','1',"4","3"); //2 数组访问和赋值 //2.1 元素的访问 alert(arrObj2[0]);//弹出显示: 张三 alert(arrObj2[arrObj2.length-1].descr);//弹出显示:拓尔思新员工 alert(arrObj2[3][0]); //弹出显示 :1 //2.2 数组的修改 arrObj2[0]='李四'; alert(arrObj2[0]); //弹出显示:李四 //3 数组对象的添加 //3.1 在数组头插入 arrObj4.unshift("head"); alert(arrObj4[0]); // 弹出显示:head //3.2 在数组尾部追加 arrObj4.push("tail"); alert(arrObj4[arrObj4.length-1]) // 弹出显示:tail //3.3 在数组中指定位置插入 arrObj4.splice(1,0,"middle"); //在第二个位置插入一个元素'middle' ,注意插入时中间参数必须为零; alert(arrObj4[1]); //显示 middle //4 数组的删除 //4.1 在数组尾部删除 arrObj4.pop();
alert(arrObj4[arrObj4.length-1]); //显示 3 //4.2 在数组头部删除 arrObj4.shift();
alert(arrObj4[0]); //显示 middle //4.3 在数组中指定位置删除 arrObj4.splice(2,1); //删除中第二个元素开始的一个元素,参数中的2表示开始删除的位置,1表示删除的个数 //读者可以自己验证是否删除。 //5 数组的截取和合并 var aSlice1=arrObj4.slice(2); // 截取arrObj4数组中从第三个位置到结尾的子数组,然后赋值给aSlice1; //读者可以自己检验相关结果 var aSlice2=arrObj4.slice(1,"3"); // 截取arrObj4数组中从第2个位置到值为"3"单位之前的数组,然后赋值给aSlice2; //读者可以自己检验相关结果 var arrObj4=arrObj4.concat(["a","b","c"]); //将arrObj4和数组["a","b","c"]连接然后返回给arrObj4 //读者可以自己检验相关结果 // 6 数组的排序 //6.1 数组元素反转 var arrObj4=arrObj4.reverse();//将arrObj4反转然后再赋值给arrObj4 //6.2 数组排序 var numArr = new Array(12,23,1,4,23,34,2,5); numArr.sort(function compare(a,b){return a-b;}); //升序排列 //读者可以自己检验相关结果 numArr.sort(function compare(a,b){return b-a;}); //降序排列 //读者可以自己检验相关结果 // 7 数组转化为字符串 var changeArr = new Array(1,2,3,4,5); var str1=changeArr.join(""); alert(str1); //显示 12345 var str2=changeArr.join(","); alert(str2); //显示 1,2,3,4,5 </script>
|