W3school 离线手册开发文档,可以查询字段功能
数组的存储性能比普通对象要好,在开发中我们经常使用数组老存储一些数据
//创建数组对象
var arr = new Array();
//向数组中添加元素
arr[0] = 10;
arr[1] = 30;
arr[2] = 54;
arr[20] = 33;
arr[50] = 40;
//这会造成数组中产生空值
//向数组的最后一位添加元素
arr[arr.length] = 70;
arr[arr.length] = 80;
arr[arr.length] = 90;
数组中的方法
push() 该方法可以向数组的末尾添加一个或多个元素,并返回一个新的长度
var arr = ["保罗","乔治","莱昂纳德"];
arr.push("萨克雷","帕克","吉诺比利");
pop()该方法可以将数组的最后一个元素删除,并将删除的元素返回
result = arr.pop();
console.log(arr);
console.log("result="+result);
unshift()向数组最前面添加一个或多个元素
arr.unshift("邓肯");
shift()删除数组的第一个元素并返回,和pop()相反
将数组中年龄大于18的元素,提取出来
function Person(name,age){
this.name = name;
this.age = age;
}
var per = new Preson("海伦",5);
var per2 = new Preson("娜丽",20);
var per3 = new Preson("安妮",25);
var per4 = new Preson("安娜",23);
var per5 = new Preson("泰勒",17);
var perArr = [per,per2,per3,per4,per5];
function GetAdult(arr){
//创建一个新的数组
var NewArr[];
//遍历arr,获取arr的person对象
for(var i = 0;i<arr.length;i++){
var p = arr[i];
if(arr.age >= 18){
NewArr.push(p);
}
}
return NewArr();
}
slice()可以用来提取数组中的指定元素。
参数:
第一个开始位置的索引。包含开始的元素
第二个结束位置的索引。不包含结束的元素。
第二个参数可以不写,此时截取从第一个参数往后的所有参数
可以传递一个负值,就是倒数
var result = arr.slice(3,5);
console.log(result);
splice()可以删除数组的指定元素
参数:
第一个开始位置的索引。
第二个删除的数量。
第三个,可以传递一些新的元素,这些元素会自动添加到开始索引位置的前面。
arr = ["张三","李四","王五","赵六","法外狂徒"];
var result = arr.splice(0,1,"阿伦","戴维斯");
console.log(result);
var result = arr.splice(0,0,"阿伦","戴维斯"); //不删除直接插入
数组的去重练习
var arr = [1,2,3,2,4,5,5,4,3,1,2,7,8,1];
//获取数组中的每一个元素
for(var i = 0;i<arr.length;i++){
//获取当前元素后的所有元素
for(var j=i+1; j<arr.length; j++){
//判断两个元素的值是否相等
if(arr[i] == arr[j]){
//如果相等则证明出现了重复元素,则删除j对应的元素
arr.splice(j,1);
//当删除了当前j所在的元素以后,后边的元素会自动补位
//此时将不会再比较这个元素,我需要在比较一次j所在位置的元素。
//使j自减
j--;
}
}
}
数组中的其他方法
concat() 可以连接两个或多个是数组,并将新的数组返回
- 该方法不会对数组产生影响
var arr = ["汤姆","杰克","霍利迪"];
var arr2 = ["格里芬","里弗斯","乔丹"];
var result = arr.concat(arr2);
console.log(arr2);
join();可以将数组转换为一个字符串。
在join中可以指定一个字符串作为一个参数,如不指定默认为逗号
result = arr.join();
result = arr.join("-"); //指定连接符
console.log(result);
console.log(typeof result);//查看类型
reverse();该方法可以反转数组。
该方法直接修改数组。
arr.reverse();
sort();对数组进行排序。影响原数组,默认使用Unicode编码排序
我们也可以自己来指定排序的规则,在sort()中添加一个回调函数。来指定排序规则
回调函数中需要定义两个形参,浏览器将会分别使用数组中的元素作为实参去调用回调函数。
- 如果返回一个大于零的值,则元素会交换位置。
- 如果返回一个小于零的值,则元素位置不变。
- 如果返回0,则认为两个元素相等,也不交换位置。
arr = [4,5];
arr.sort(function (a,b){
if(a>b){
return -1;
}else if(a<b){
return 1;
}else{
return 0;
}
//前面的数减去后面的数,如果结果大于0,则交换位置,结果小于零则不交换,等于0不互换。
return a - b;
//降序排列
return b - a;
});