当前位置: 首页 > 前端笔记 > JAVASCRIPTS > JS有关数组(Array)的操作
2014年29六月

JS有关数组(Array)的操作

数组是一系列值(称之为元素)的集合,比如颜色值数组,字符串数组或图片数组。可以通过带方括号的索引值来访问数组的各个元素。这里的索引也叫做下标。索引值可以是以下2种类型:非负整数和字符串。以数字作为索引的数组叫数字数组,而以字符串作为索引的数组叫关联数组。在Javascript中,数组是一种具有附加功能的内置对象。

定义和赋值:

//这里有4种定义方式
var arr = new Array();
var arr = new Array("red","green","blue");
var arr = new Array(10);
var arr = [];
//二维数组
var arr = new Array(new Array(1,2,3), new Array(3,4,5), new Array(5,6,7));
var arr = [[1,2,3],[3,4,5],[5,6,7]];
//赋值
for(var i=0; i<10; i++){
	arr[i] = i*10;
	//也可以这样
	//arr.push(i*10);
}

遍历:

for(var i=0; i<arr.length; i++){
	alert(arr[i]);
}
//还可以这样
for(var i in arr){
	alert(arr[i]);
}
//二维数组
for(var i=0; i<arr.length; i++){
	for(var j=0; j<arr[i].length; j++){
		alert(arr[i][j]);
	}
}

说明一下:如过数组带有键值,如 arr = ["id":"1", "name":"jim", "age":"30"]; 那么用for in 循环的时候,其中的i就表示键,arr[i]就是值。否者i就是索引值,从0开始。

数组方法:
concat(): 合并2个数组
join(): 把数组的所有元素放入一个字符串,元素通过指定的分隔符进行分割
pop(): 删除并返回数组的最后一个元素
push(): 向数组的末尾添加一个或多个元素
reverse(): 颠倒数组中元素的顺序
shift(): 删除并返回数组的第一个元素
slice(): 从已有数组中选取部分元素构成新数组
sort(): 对字符数组或数字数组进行排序
splice(): 删除并/或者替换数组元素
toLocaleString(): 把数组转化成本地格式,并返回结果
toString(): 把数组转化成字符串,并返回结果
unshift(): 想数组开头添加一个或多个元素

//concat
var arr = [1,2,3,4,5];
var c = [7,8,9];
arr = arr.concat(c);
alert(arr); //1,2,3,4,5,7,8,9

//join
var arr = [1,2,3,4,5];
arr_join = arr.join("--");
alert(arr); //1,2,3,4,5
alert(arr_join); //1--2--3--4--5

//pop
var arr = [1,2,3,4,5];
arr_pop = arr.pop();
alert(arr); //1,2,3,4
alert(arr_pop); //5

//push
var arr = [1,2,3,4,5];
var c = [7,8,9];
arr.push(c);
alert(arr); //1,2,3,4,5,7,8,9

//reverse
var arr = [1,2,3,4,5];
arr.reverse();
alert(arr); //5,4,3,2,1

//shift
var arr = [1,2,3,4,5];
var arr_shift = arr.shift();
alert(arr); //2,3,4,5
alert(arr_shift); //1

//slice
var arr = [1,2,3,4,5];
var c = [7,8,9];
var arr_slice = arr.slice(1,4); //索引值从0开始,开始索引1对应的值是“2”,结束索引是4对应的值是“5”,但是不包含这个值。
alert(arr); //1,2,3,4,5
alert(arr_slice); //2,3,4

//sort
var arr = [1,3,2,4,5];
arr.sort();
alert(arr); //1,2,3,4,5

//splice
var arr = [1,2,3,4,5];
var c = [7,8,9];
arr.splice(2,2,c); //索引从2开始(值3),包含值3,删除2位,然后将新数组代替删除元素插入。如果没有c就单纯表示删除
alert(arr); //1,2,7,8,9,5

//unshift
var arr = [1,2,3,4,5];
var c = [7,8,9];
arr.unshift(c);
alert(arr); //7,8,9,1,2,3,4,5

补充说明:
jQuery取数组的索引值方法:$.inArray(value,array); 就是找value在array中的位置,如果找不到则返回的是-1,在返回的就是索引位置。
值得注意的问题是:
var a = [1,2,3,4,5];
var b = a;
这里实际上并不是赋值,而是引用,如果操作b,同样也会影响到a。所以只能用下面的方法复制:
var b=a.slice(0);
或者:var b = a.concat();
这样在操作数组b就不会影响到数组a了。

文章信息

  • 发布日期:2014年06月29日 15:11:23
  • 固定地址:http://www.estorm.cn/notes/javascripts/2014-06-29/js-array.html