基本概念
就像JavaScript语言本身宽松灵活的风格一样,JavaScript数组也具有类似的特性。虽然JavaScript不像java语言,没有有强大的容器框架(List、Set、Map等)的支撑,但JavaScript数组却完全可以模拟出类似的数据结构。
数组的创建
创建一个空数组:
var arr = new Array();
创建一个数组:
var arr = new Array(‘aaa’,’bbb’,’ccc’);
创建一个长度为10的数组:
var arr = new Array(10);
在javascript1.1中,上述语句有效,在javascript1.2中,上述语句将创建一个长度为1内容为10的数组。所以,还是尽量不要使用指定长度的方式来创建数组。
通过数组直接量(javascript1.2)创建数组:
var arr1 = [‘aaa’,’bbb’,’ccc’];
JavaScript的数组同php的数组一样,你可以指定长度,但是却可以随时改变其长度。在JavaScript中,只有那些真正存储在数组中的元素才能够分配到内存。比如声明如下:
arr[0] = ‘aaa’;
arr[1000] = ‘bbb’;
那么,实际分类内存的只有第0号元素和第1000号元素,而1–999号元素并没有分配内存。
数组的元素的访问
同其他语言一样,JavaScript中同样适用[]对数组元素进行访问:
//获取数组的元素值
var testGetArrValue=arrayObj[1];
//给数组元素赋予新的值
arrayObj[1]= “这是新值”;
遍历数组
var strs = new Array(‘aaa’,’bbb’,’ccc’);
for(var i = 0; i < strs.length; i++){
alert(strs[i]);
}
数组元素的添加
虽然创建数组的时候我们指定了数组的长度,但却可以随时改变这个值:
var strs = new Array(3);
strs[4] = ‘darkmi’;
for(var i = 0; i < strs.length; i++){
alert(strs[i]);
}
该JavaScript代码片段的输出为前三个alert窗口显示“undefined”,第四个alert窗口显示“darkmi”。
另外我们也可以使用JavaScript数组对象的push方法将一个或多个新元素添加到数组结尾,push方法还会返回数组新长度。
push方法的原型如下:
arrayObj. push([item1 [item2 [. . . [itemN ]]]]);
push方法示例:
var strs = [‘aaa’, ‘bbb’, ‘ccc’];
strs.push(‘ddd’, ‘eee’);
for(var i = 0; i < strs.length; i++){
alert(strs[i]);
}
unshift方法将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度。
unshift方法的原型如下:
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);
unshift方法示例:
var strs = [‘ddd’, ‘eee’];
strs.unshift(‘aaa’, ‘bbb’, ‘ccc’);
for(var i = 0; i < strs.length; i++){
alert(strs[i]);
}
splice方法将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回数组新长度。
arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);
数组元素的删除
移除最后一个元素并返回该元素值
arrayObj.pop();
移除最前一个元素并返回该元素值,数组中元素自动前移
arrayObj.shift();
删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素。
arrayObj.splice(deletePos,deleteCount);
数组的截取和合并
以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素
arrayObj.slice(start, [end]);
将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组
arrayObj.concat([item1[, item2[, . . . [,itemN]]]]);
数组的拷贝
返回数组的拷贝数组,注意是一个新的数组,不是指向
arrayObj.slice(0);
返回数组的拷贝数组,注意是一个新的数组,不是指向
arrayObj.concat();
数组元素的排序
反转元素(最前的排到最后、最后的排到最前),返回数组地址
arrayObj.reverse();
反转元素(最前的排到最后、最后的排到最前),返回数组地址
arrayObj.sort();
数组元素的字符串化
返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。
arrayObj.join(separator);
Sorry, the comment form is closed at this time.
No comments yet.