您的位置:首页 > Web前端 > JavaScript

Javascript中的数组和数组的方法

2012-06-01 16:23 169 查看
1.数组的长度

var a=new Array();//a.length=0
a=new Array(10);//a.length=10
a=new Array(1,2);//a.length=2
a=[4,5];//a.length=2
a[5]=-1;//a.length=6,此时定义了元素(0,1,5)
a[49]=0;a.length=50;此时定义了元素(0,1,5,49)


2.数组的访问

var a=[];
a=[{"1":"3"}];
alert(a[0][1]);//3


3.Join方法

可以把一个数组里所有元素转换成字符串然后再把他们连接起来,如果没有指定连接符号 默认为','连接。

var a = [1, 2, 3, 4, [5, 6]];
alert(a.join(","));//1,2,3,4,5,6


4.reverse方法

将颠倒数组元素的顺序并返回颠倒后的数组。并不创建新的数组

var a = [1, 2, 3, 4, [5, 6]];
alert(a.reverse().join(","));//5,6,4,3,2,1


5.Sort方法

在数组上对数组元素排序,并返回排序后的数组

默认排序规则是按字母顺序排序,如果数组里面有未定义的数字这些元素将会放到数组的末尾。

如果需要自定义排序,必须给sort方法传递一个排序函数,该函数有2个参数

如果第一个参数要位于第二个参数前:

则该函数最后的返回值要小于0,

如果第一个参数要位于第二个参数后:

则该函数最后的返回值要大于0.

如果等于0,则为默认排序

对象排序如何写呢:

var arr = [];
arr.push({ id: "序号9", sort: "9" });
arr.push({ id: "序号1", sort: "1" });
arr.push({ id: "序号1.1", sort: "1" });
arr.push({ id: "序号8", sort: "8" });
arr.push({ id: "序号6", sort: "6" });
arr.push({ id: "序号4", sort: "4" });
arr.push({ id: "序号3", sort: "3" });

function ArraySort() {
arr.sort(function (a, b) {
return a.sort - b.sort;
})
$("#result").append("ID增序排序后的序列<br/>");
for (var i = 0; i < arr.length; i++) {
$("#result").append(arr[i].id + "<br/>");
}
}
function ReArraySort() {
arr.sort(function (a, b) {
return b.sort - a.sort;
})
$("#result").append("ID降序排序后的序列<br/>");
for (var i = 0; i < arr.length; i++) {
$("#result").append(arr[i].id + "<br/>");
}
}
$(function () {
$("#result").append("原来的序列<br/>");
for (var i = 0; i < arr.length; i++) {
$("#result").append(arr[i].id + "<br/>");
}

})


  分别执行ArraySort 和ReArraySort结果为

原来的序列
序号9
序号1
序号1.1
序号8
序号6
序号4
序号3
ID增序排序后的序列
序号1
序号1.1
序号3
序号4
序号6
序号8
序号9
ID降序排序后的序列
序号9
序号8
序号6
序号4
序号3
序号1
序号1.1


6.Concat方法

能创建并返回一个新的数组,这个数组包含了原来数组,其后是contact的参数,如果参数是数组,那么参数将被展开并逐个被添加到原数组的末尾,并且注意的数concat并不能拆分元素为数组的参数

var a = [1, 2, 3, 4];
alert(a.concat(5, 6).join());//1,2,3,4,5,6
alert(a.join());//1,2,3,4
a.concat([5,6,[7,8]]);//1,2,3,4,5,6,[7,8]


原数组不变!

7.slice()方法

返回指定数字的一个片段

他的两个参数指定了返回数组的起始点。

第一个参数为指定数组的开始元素(从0开始)第二个参数为指定数组的结束索引但不包括该索引的元素,如果没有第二个参数则返回该指定数组后所有的数组

如果参数为负数,则该索引是相对于数组最后一个元素而言,此时索引是从-1开始及-1为该数组的最后一个元素。

var a = [0, 1, 2, 3, 4, 5, 6, 7];
alert(a.slice(2, 3).join());//2
alert(a.slice(-4).join());//4,5,6,7
alert(a.slice(-4, -3));//4


原数组不变!

8.splice方法

插入或删除数组元素的通用方法,他在原数组上修改数组

splice的第一个参数指定要插入或删除的元素在数组中的位置。

第二个参数指定了要在原数组中删除的个数。如果第二个参数被省略了,那么将删除从开始元素开始到数组末尾的所有元素。

该方法返回值为删除掉的元素数组,如果没有删除元素返回[];

splice第二个参数后的所有参数为在第一个参数指定的位置后并在指定第二个参数删除的个数后,添加到此处的元素

var a = [0, 1, 2, 3, 4, 5, 6, 7];
alert(a.splice(2, 3).join());//2,3,4
alert(a.join());//0,1,5,6,7
alert(a.splice(2, 0, "a", "b"));//空
alert(a.join());//0,1,a,b,5,6,7
alert(a.splice(2, 1, "c", "d"))//a
alert(a.join());//0,1,b,c,d,5,6,7


  

9.push和pop

一个是往数组添加元素一个是删除数组最后一个元素

10.unshift和shift方法

和push和pop很类似只不过是往数组的开始位置添加或删除
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: