除了Object之外,Array类型应该是JavaScript中最常用的类型了。与其他语言不同的是JavaScript中的数组中的元素可以是不同类型的数据。
数组的创建
创建数组有两种方式:
1,使用Array的构造函数
var arr = new Array()
2.数用数组字面量表示
var arr = ['123',2]
通过length属性获取数组长度
var arr = [1,2,3,4,5,];
arr.length // 结果:5
indexOf
用来获取一个指定元素的位置
var arr = ['hh','zjzj','md','oo'];
arr.indexOf('md') //结果: 2
arr.indexOf('m') //结果: -1 找不到返回-1
push 和 pop
push()像Array末尾添加元素,pop()删除最后一个元素s
var arr = ['hh','zjzj','md','oo'];
arr.push('kk');
此时的arr打印为 ['hh','zjzj','md','oo','kk'];
arr.pop(); //‘kk’
此时打印arr,结果为['hh','zjzj','md','oo'];
unshift 和 shift
从数组头部添加或者删除元素
var arr = ['hh','zjzj','md','oo'];
arr.unshift('ll') //返回新数组的长度:5
arr此时为['ll','hh','zjzj','md','oo']
arr.shift; //'ll'
arr此时为['hh','zjzj','md','oo']
reverse
反转数组元素的顺序
var arr = [1,2,3];
arr.reverse();
arr // 结果:[3,2,1]
splice
数组中最强大的方法,可用于增,删,改操作.
var arr = [1,2,3,4,5];
//增加
需要三个参数即可(起始位置,0,增加的元素)要是增加多个元素也一样
arr.splice(2,0,'qq','w','e');//从第二个元素开始,删除0个,插入是三个新元素
alert(arr); //打印[1,2,'qq','w','e',4,5];
//删除
只需指定2个参数:要删除的第一项的位置和要删除的项数。
例如,splice(0,2)会删除数组中的前两项
//修改
splice (2,1,"red","green")从第二个位置开始,删除一个,同时插入‘red’和‘green’
join
join()方法只接收一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串
var colors = ["red", "green", "blue"];
alert(colors.join(",")); //red,green,blue
alert(colors.join("||")); //red||green||blue
concat
连接两个数组
var arr = [1,2,3];
arr.concat('4');//返回一个新数组 [1,2,3,''4''];
sort
对数组中的元素进行排序
var arr = [1,2,3,4,13];
arr.sort();然而结果并非想象中的那样,打印[1,13,2,3,4]; why ????
原来 :为了实现排序,sort()方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,以确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串
因此sort()方法可以接收一个比较函数作为参
数,以便我们指定哪个值位于哪个值的前面。
比较函数接收两个参数,如果第一个参数应该位于第二个之前则返回一个负数,如果两个参数相等
则返回0,如果第一个参数应该位于第二个之后则返回一个正数。以下就是一个简单的比较函数:
function compare(value1, value2) {
if (value1 < value2) {
return -1;
} else if (value1 > value2) {
return 1;
} else {
return 0;
}
}
var values = [0, 1, 5, 10, 15];
values.sort(compare);
alert(values); //0,1,5,10,15
网友评论