1.数组可以动态调整。
var names=new array();
var names= new array(20);
var names = new array("jack","linda");
var name = [];
2.数组中栈操作
var names=[];
names.push("A");//将数组元素压入栈
names.push("B");
names.push("C");
此时names=[A,B,C];
/*第一种,弹出栈*/
var str = names.pop();//弹出C
console.log(str);//网页中的console输出
str = names.pop();//弹出B
str = names.pop();//弹出A
/*第二种:用shift采取先入先出取数组元素**/
var a = names.shift();
/*用unshift将压入元素进入数组*/
names.unshift("A");
names.unshift("B");
names.unshift("C");
此时names=[C,B,A];
3.数组元素排序
如果一个数想排在另一个数的前面就返回一个负数。
如果一个数想排在另一个数的后面就返回一个正数。
如果两个数相等,就返回一个0;
排序(升序)函数:
function fn( n1,n2){
if(n1>n2){
return 1;
}else if(n1==n2){
return 0;
}else{
return -1;
}
}
var nums=[1,2,4,13,11,3,58,67]
nums.sort(fn);
console.log(nums.toString());
等价于:
nums.sort(function(n1,n2){
if(n1>n2){
return 1;
}else if(n1==n2){
return 0;
}else{
return -1;
}
});
等价于:
nums.sort(function(n1,n2){
return n1-n2;
});
**3.数组方法**
concat:基于当前数组中的所有项创建一个新的数组。该方法会创建当前数组的一个副本,然后将接收到的参数添加到这个副本的末尾。
(function(){
var nums=[1,2,3];
var nums2=nums.concat();
nums2.push(4);
console.log(nums2.toString());
})
slice:基于当前数组中的是一个或多个项创建一个新的数组。该方法接受一个或两个参数,分别代表返回项的起始和结束位置。如果只有一个参数,则从当前位置到数组结束。该方法操作不会影响到原始数组。
nums.slice(0,4);去0-4下标元素,左闭右开。
splice:可以对数组中的元素进行插入、替换和删除操作。
nums = ["a","b","c","d","e"];
nums.splice(0,3);//从0开始,删掉3个元素--->["d","e"]
nums.splice(1,0,"x","y");//从1开始,删掉0个元素,插入x,y;----->["a","x","y","b","c","d","e"]
nums.splice(1,2,"x","y");//从1开始删掉两个,用x,y 替换。---->["a","x","y","d","e"]
4.数组迭代
nums=["a","b","c","d","e","f"];
(1)for(var i = 0;i<nums.length();i++){
console.log(nums[i]);
}
(2) for-in 循环
for(var i in nums){
console.log(nums[i]);//i不是元素,是索引
}
(3)for-each
nums.foreach(function(item,index,array){
console.log(item+"->"+index+"->"+array);
});