数组
js中的同一个数组可以存储多种类型的值,并且长度可以动态的调整。
创建数组的方式分为构造函数和字面量
1、使用构造函数的方式:
var a1 = new Array();//空数组
var a2 = new Array(5);//指定长度
var a3 = new Array(1,2,"hello");//带初始元素的数组
2、使用字面量的方式
var a4 = [];//空数组,和new Array()等价
var a5 = [10];//数组中有一个值10;
注意:
js中数组下标从0开始
Array对象的方法:
1、concat() 连接两个或更多个数组并返回新数组
var n1 = [1,2,3,4];
var n2 = [5,6,7,8];
var x = n1.concat(n2);
for(var i in n2)
{
console.log(n2[i]);
}
2、join() 把数组的所有元素放入一个字符串,元素通过指定的分隔符号分离
var n1 = [1,2,3,4];
var str = n1.join("。");
console.log(str);
//输出结果为1。2。3。4
//返回字符串,该字符串是把数组中每个元素转成字符串,并把这些字符串连接,其中插入指定字符串
3、pop() 删除并返回数组中最后一个元素
var n1 = [1,2,3,4];
var num = n1.pop();
console.log(num);
console.log(n1.length);//n1.length为数组的长度
4、push() 向数组的末尾添加一个或多个元素,并返回新长度。
var n1 = [1,2,3,4];
var num = n1.push(5,9);
console.log(num);//输出结果为6
5、reverse() 逆序数组,注意会改变原数组
var n1 = [1,2,3,4];
n1.reverse();
for(var i in n1)
{
console.log(n1[i]);
}
5、shift() 删除并返回数组中的第一个元素
var n1 = [1,2,3,4];
var num = n1.shift()
console.log(num);//1
console.log(n1.length)//3
6、slice(start,end) 从数组中返回选定的数组。
start为必需参数,规定从何处开始选取,如果是负数,从末尾开始,如-1表示最后一个元素,依次类推;
end为可选参数,指定结束处数组下标,不指定参数自动到末尾;
注意:左闭合区间,返回新数组
var n1 = [1,2,3,4];
var n2 = n1.slice(1,3);
for(var i in n2)
{
console.log(n2[i]) ;
}
//输出 2,3
7、sort() 对数组中元素排序,可指定排序规则
默认排序规则为按照数组中元素的字符编码进行升序排列
如果按照其它标准进行排序,需要提供比较函数,比较函数应该有两个参数a,b,返回值如下:
*若a < b,想要实现排序后a在b前,则返回一个小于0的值;
*若a == b,返回0;
*若a > b,则返回一个大于0的值
var n1 = [4,2,5,7,3];
n1.sort(function (a,b) {
if (a < b)
{
return 1;
}else if(a == b)
{
return 0;
}
else {
return -1;
}
})//实现一个降序排列
for(var i in n1)
{
console.log(n1[i]) ;
}
//输出:7、5、4、3、2
8、splice() 从数组中添加删除项目,返回被删除的项目;该方法改变原数组;
splice(index,how many,item...);
index 必需,整数,规定添加删除项目的起始位置,负数从末尾
how many,必需,要删除元素的数量,0不删除
item... 可选向数组中添加新条目
var n1 = [1,2,3,4,5,6,7,8];
var n2 = n1.splice(2,2,9,8);
for(var i in n1)
{
console.log(n1[i]);
}
//输出 1,2,9,8,5,6,7,8
for(var i in n2)
{
console.log(n2[i]);
}
//输出 3,4
9、toString() 数组转成字符串
var num = [1,2,3,4,5];
console.log(num.toString());
//输出 1,2,3,4,5
10、unshift() 向数组的开头添加一个或多个元素,并返回新长度
unshift() 方法将把它的参数插入 arrayObject 的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。
请注意,unshift() 方法不创建新的创建,而是直接修改原有的数组
var num = [1,2,3,4,5];
console.log(num.unshift(9,8));
for(var i in num)
{
console.log(num[i]);
}
//输出7
//输出9,8,1,2,3,4,5