在讲数组的常见方法之前,我们先来看一下数组的创建,有2种方式可以来创建数组
a:用构造函数的方法来创建
var arr = new Array();//定义了一个空数组,里面没有值
var arr = new Array(7);//定义了一个数组,里面有7个元素(变量),但并未赋值
var arr = new Array("红","橙","黄","绿","青","蓝","紫");//定义了一个数组,里面有7个元素,并且已经赋值好,分别是"红","橙","黄","绿","青","蓝","紫"
b:用字面量的方法来创建
var arr = [];
var arr = ["红","橙","黄","绿","青","蓝","紫"];
所以
var arr = new Array()等价于 var arr = [];
数组常见的方法
下面将数组的方法分为5类(官方文档中可查)
A – 给数组添加元素(增):push(), unshift(),splice()
B – 从数组中删除元素(删):pop(), shift(),splice()
C – 修改数组中的元素(改):splice(),reverse(),sort()
D --从已有数组中返回选定的数组(查):slice()
E – 不会改变元素数组的内容的函数:concat(),slice()
A 给数组添加元素(增)
1、push() 在数组的末尾增加一个元素
function fn(){
var arr = ["红","橙","黄","绿","青","蓝","紫"];
arr.push("黑")
console.log(arr)//结果显示:"红","橙","黄","绿","青","蓝","紫","黑"
}
2、unshift() 在数组的开始添加
function fn(){
var arr = ["红","橙","黄","绿","青","蓝","紫"];
arr.unshift('白');
console.log(arr);//结果显示: "白","红","橙","黄","绿","青","蓝","紫"
}
3、splice() 可以给数组添加、删除元素,关键可在指定下标删除或添加
function fn(){
var arr = ["红","橙","黄","绿","青","蓝","紫"];
arr.splice(2,0,"粉");//添加元素:在下标2的位置插入了"粉"
// 结果显示: ["红", "橙", "粉", "黄", "绿", "青", "蓝", "紫"]
arr.splice(2,1,"粉");//把下标为2的元素删除掉了(黄),在下标2的位置插入了"粉"
// 结果显示:["红", "橙", "粉", "绿", "青", "蓝", "紫"]
arr.splice(2,3,"粉","灰");//删除元素:从下标2开始删除3个,插入元素:在下标2的位置插入了"粉","灰"
// 结果显示:["红", "橙", "粉", "灰", "蓝", "紫"]
console.log(arr);
}
B – 从数组中删除元素(删)
1、pop() 删除数组里最后一个元素,返回值就是被删除的元素
function fn (){
var arr = ["红","橙","黄","绿","青","蓝","紫"];
var t = arr.pop();
console.log(t); //结果显示:紫
console.log(arr);//结果显示: ["红", "橙", "黄", "绿", "青", "蓝"]
}
2、shift() 在数组的开始删除
function fn(){
var arr = ["红","橙","黄","绿","青","蓝","紫"];
arr.shift();
console.log(arr);// 结果显示:"橙","黄","绿","青","蓝","紫"
}
3、splice() 可以给数组添加、删除元素,关键可在指定下标删除或添加(分类A中已讲)
C – 修改数组中的元素(改)
1、splice() (上面已讲)
2、reverse() 把数组的元素进行翻转
function fn (){
var arr = ["红","橙","黄","绿","青","蓝","紫"];
console.log(arr);//结果显示: ["红", "橙", "黄", "绿", "青", "蓝", "紫"]
var t = arr.reverse();
console.log(t); //结果显示: ["紫", "蓝", "青", "绿", "黄", "橙", "红"]
}
3、sort() sort函数只能排序字符串,不能排序数字(在回调函数中可以排序数字)
function fn (){
var arr=['t','f','b','a'];
arr.sort();
console.log(arr);//结果显示:["a", "b", "f", "t"]
}
D --从数组中查询:slice()
slice() 从数组里取出一部分元素(根据起始下标和结束下标)
function fn (){
var arr = ["红","橙","黄","绿","青","蓝","紫"];
var t = arr.slice(2) ;
console.log(t); //结果显示:["黄", "绿", "青", "蓝", "紫"]
var s = arr.slice(2,5) ;
console.log(s); //结果显示:["黄", "绿", "青"]
console.log(arr);//不改变原数组 结果显示:["红","橙","黄","绿","青","蓝","紫"]
}
E – 不会改变元素数组的内容的函数
1、concat() 拼接,可拼接数组或元素
function fn (){
var a = ["红","橙","黄","绿"];
var b = ["青","蓝","紫"]
console.log( a.concat(b) ); //结果显示:["红", "橙", "黄", "绿", "青", "蓝", "紫"]
// console.log( a.concat("青","蓝","紫") );
console.log(a); //结果显示:["红", "橙", "黄", "绿"]
}
2、slice() (在分类D中已讲)
以上代码执行时别忘记调用下 fn()