1、创建一个数组
方法一:创建一个长度为零的数组
var arr = new Array();
方法二:创建一个长度为5的数组
var arr = new Array(5);
alert(arr.length); -----------得到5
方法三:创建一个指定内容的数组
var arr = new Array(“张三”,”李四”,”王五”,”马六”,”冯七”,”赵八”,”魏九”);
方法四:简单写法
var arr = [“张三”,”李四”,”王五”,”马六”,”冯七”,”赵八”,”魏九”];
方法五:创建空的数组
var arr = [];
2、访问数组
数组的名称加下标(下标从0开始)
例:var arr = (1,2,3,4,5,6,);
alert(arr[2]);--------------------->得到3
3、设置数组的值
例:arr[4] =“牛”;---------->把数组中第四个值换成 牛
4、添加内容
例:arr[4] =“花”;
arr[5] =“好”;
alert(arr);----------------->会将数组第5、6个的值写成”花”,”好”
注:javascript是一种若类型的编程语言,可以动态的改变数组的长度
5、数组的遍历
5.1、for循环遍历(把内容一个个输出)
for(var i = 0;i < arr.length;i++){
document.write(arr[i]);
}
5.2、for in循环遍历
var arr=[];
arr[1000] =“牛”;
for(var k in arr){
console.log(arr[k]);
}
注:在特长数组的遍历中,for in循环比for循环运算的快,不易死机
5.3、for Each循环遍历(扩展ES6新语法)
arr.forEach(
function(elem,index,list){
console.log(elem,index,list);
}
)
注:elem循环的内容、index下标、list数值
6、数组的方法
6.1、后删除pop()
例:var arr = [“张三”,”李四”,”王五”,”马六”,”冯七”,”赵八”,”魏九”];
arr.pop();
alert(arr);----------------->得到:张三,李四,王五,马六,冯七,赵八
6.2、前删除shift()
例:var arr = [“张三”,”李四”,”王五”,”马六”,”冯七”,”赵八”,”魏九”];
arr.shift();
alert(arr);----------------->得到:李四,王五,马六,冯七,赵八,魏九
6.3、后添加push(“”)
例:var arr = [“张三”,”李四”,”王五”,”马六”,”冯七”,”赵八”,”魏九”];
arr.shift(“嘎嘎”);
alert(arr);----------------->得到:李四,王五,马六,冯七,赵八,魏九,嘎嘎
6.4、前添加unshift(“”)
例:var arr = [“张三”,”李四”,”王五”,”马六”,”冯七”,”赵八”,”魏九”];
arr.unshift(“嘎嘎”);
alert(arr);------------------>得到:嘎嘎,李四,王五,马六,冯七,赵八,魏九
6.5、从中间添加、删除splice()
例:var arr = [1,2,3,4,5,6,7];
arr.splice(0,0,6,6);
alert(arr);-------------------->得到:6,6,1,2,3,4,5,6,7
解析:arr.splice(从第几个,删除几个,添加1,添加2,·······)
6.6、切一段slice()
例:var arr = ["a","b","c","d","e","f"];
var b=arr.slice(1,2);
alert(b);-------------------->得到:b
解析:slice(从第几个,切到第几个)切到第几个时不含最后一个
6.7、连一块concat()
例:var arr = ["张三","李四","王五","马六","冯七"];
var arr2 = [1,3,5,7,9];
var arr3;
arr3 = arr.concat(arr2);
alert(arr3);---------------得到:张三,李四,王五,马六,冯七,1,3,5,7,9
6.8、前后反转reverse()
例:var arr = [1,2,3,4,5,6,7];
arr.reverse();
alert(arr);-------------------->得到:7,6,5,4,3,2,1
7、数组的排序
例:var arr = [1,2,3,4,5,6,7];
arr.sort(function(a,b){
if(a>b){return -1;}
else{return 1;}
})
alert(arr);------------------>得到7,6,5,4,3,2,1
或:var arr = [1,25,13,4,55,26,47,58];
arr.sort();
alert(arr);------------------>得到:1,13,25,26,4,47,55,58
8、数组最大值
【方法1】
var arr = [10,52,2,3,96,87,25,45]
var max = arr[0];
for(var k in arr){
if(arr[k]>max){
max = arr[k];
}
}
alert(max);----------------------->得到:96
【方法2】
用math,min冒充方法(call和apply用法和区别查资料)
max = Math.max.apply(null,arr);
alert(“最大的数是”+max);
注:求min方式同上。
9、数组的去重
分析:1.新建一个新的数组(数组为空)
2.遍历arr,若新数组里有当前数,则不记录。若新数组里无当前数,则该数加
入新数组
3.循环完成的新数组就是我们去重的数组
例1:var arr = [1,1,25,25,23,36,23];
var arr2 = [];
for(var i = 0;i < arr.length;i++){
if(arr2.indexOf(arr[i]) == -1){
arr2.push(arr[i]);
}
}
alert(arr2);或document.write(arr2);
例2(ES5):
let arr = [1,1,22,2,55,3,1,2,4];
let result = arr.filter(function(item,index,self){
return self.indexOf(item)===index;
//如果查找出来的下标 不是 当前下标 代表是重复的
})
console.log(result);