1.数组概念
数组是值的有序集合,每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示称为索引。javascript数组是无类型的,数组元素可以是任意类型。
2.如何创建数组
a.使用数组直接量
var nums = [1,2,3,4];
b. 调用构造函数Array(),有三种方式
第一种:调用时没有参数,该方法创建一个没有任何元素的空数组,等同于数组直接量[]
var a = new Array();
第二种:调用时有一个数值参数,它指定了数组的长度,用来预分配一个数组空间
var a = new Array(10);
第三种:显示指定多个数组元素
var a = new Array(1,2,3,4);
3.数组的读写
数组通过[ ]操作符访问加索引每一个数组元素,数组的索引从0 开始
var nums =[1,2,3,4];
console.log(nums[0]); //输出1
nums[1]=4; //重新给数组的第二个元素赋值,索引为1
console.log(nums[1]); //输出4
使用nums.length 获取数组的长度
4.数组元素的添加和删除
a.为数组添加元素最简单的方法:为新索引赋值
var s =[]; //声明一个空数组
s[0] =1; //向其中添加元素并赋值
b.可以使用push( ) 方法在数组末尾增加或多个元素
var s =[];
s.push(1); //增加一个元素
s.push(2,3);
在数组首部插入元素使用unshift();
s.unshift(0) //在数组首部插入元素
console.log(s); //输出0,1,2,3
注:在数组尾部添加元素也可以使用 s[s.length]=8
5.数组遍历,一般利用for循环,forEach(),for/in
var nums = [1,2,3,4,5];
for(var i=0;i<nums.length;i++){ //利用for循环遍历
console.log(nums[i]);
}
nums .forEach(function(x){ //利用forEach遍历
console.log(x);
});
for(var x in nums){ //利用for/in 注:x是该数组的索引
console.log(nums[x]);
}
6.常用数组方法
join() 将数组中所有元素都转化为字符串并连接在一起,返回最后生成的字符串
function JoinDemo(){
var a, b;
a = new Array(0,1,2,3,4);
b = a.join("-");
console.log(b) //输出结果0-1-2-3-4
}
reverse()将数组中的元素颠倒顺序,返回逆序数组。它不通过重新排列元素创建新的数组,而是在原先的数组中重新排列它们。
function ReverseDemo(){
var a, b;
a = new Array(0,1,2,3,4);
b = a.reverse();
return(b); // [4, 3, 2, 1, 0]
}
sort()将数组中的元素排序并返回排序后的数组,当不带参数调用sort()时,数组元素以字母表顺序排序
var word =["hello","world","test","apple"];
console.log( word.sort()); //apple,hello,test,world
如果要使数组按照其它方式排序,必须给sort()方法传递一个比较函数,该函数决定了它的两个参数在排好序的数组中的先后顺序
//从小到大排序
var nums =[1,4,3,2,5,8];
nums.sort(function(a,b){return a>b?1:-1});
console.log(nums); // [1, 2, 3, 4, 5, 8]
//从大到小排序
nums.sort(function(a,b){return a>b?1:-1});
console.log(nums); // [8, 5, 4, 3, 2, 1]
concat()创建并返回一个新的数组
var num =[1,2,3];
console.log( num.concat(4,5)); //输出[1,2,3,4,5]
slice()返回一个指定数组的一个片段或者是子数组。它有两个参数分别指定片段的开始位置和结束位置
var num =[1,2,3,4,5];
num.slice(0,4); // 1,2,3,4
num.slice(3) //如果只输入一个参数,该参数的值即作为起始位置。输出从起始位置到数组末尾的值 4,5
num.slice(1,-1) // 2,3 ,4
num.slice(-3,-2) // 3
splice()是数组中插入或者删除元素的方法,它会修改调用数组。它的第一个参数指定插入或者删除元素的起始位置,第二个参数指定了应该从数组中删除的元素个数,如果省略从起始点到末尾的所有元素都将被删除。紧随其后的任意个数的参数指定了需要插入数组的元素,从第一个参数指定的位置开始插入。
var num1 =[1,2,3,4,5];
num1.splice(1,2); //删了2,3
console.log(num1); //1,4,5
var num2 =[1,2,3,4,5,6]
num2.splice(2); //删除了 3,4,5
console.log(num2); // 1,2
num2.splice(1,0,3,4,7,8);//添加了3,4,7,8
console.log(num2) //1,3,4,7,8,2
push()和pop()
两者允许将数组当成栈来使用
push()方法在数组的末尾添加一个或多个元素,并返回数组新的长度
pop()它删除数组的最后一个元素,减小数组的长度并返回它删除的值
var st =[];
st.push(1,2); //返回数组新的长度 2
console.log( st); // [1,2]
st.pop(); //删除数组最后一个元素2,并返回删除元素的值2
console.log( st); //[1]
unshift和shift
unshift在数组的头部添加一个或者多个元素,并将已存在的元素移动到更高索引的位置来获取足够的空间,最后返回数组新的长度
shift删除数组的第一个元素并将其返回,然后把所有随后的元素下移一个位置来填补数组头部的空缺
var st =[2,3];
st.unshift(4) //在数组的头部添加一个元素1,并返回数组的长度3
console.log(st); // [4,2,3]
st.shift(); //删除数组的第一个元素 并返回被删除元素的值
console.log(st); // [2,3]
toString()该方法将数组的每个元素转化为字符串,并且输出用逗号分隔的字符串列表
var st =[2,3];
console.log(st.toLocaleString()); // 2,3