数组
三种声明方式
-
var arr = new Array(10,20,true,"hello");
-
var arr = Array(10,20,true,"hello");
-
var arr = [10,20,true,"hello"];
常用方法
-
arr.pop()
取数组末尾的数,返回的是取的值
var arr = new Array(1,2,3,4); arr.pop();//4 console.log(arr);//[1,2,3]
-
arr.push()
在数组末尾添加
var arr = new Array(1,2,3,4); // arr.pop(); arr.push(23,23); console.log(arr);//[1,2,3,4,23,23]
-
arr.shift()
从数组首位取出,返回的是取的值
var arr = new Array(1,2,3,4); console.log(arr.shift());//1 console.log(arr);//[2,3,4]
-
arr.unshift()
从数组头部插入元素
arr.unshift(23);//[23,1,2,3,4]
-
arr.concat()
合并数组
var arr = [1,2,3]; var arr2 = arr.concat([4,5]); console.log(arr2)//[1,2,3,4,5]
-
arr.slice()
取指定区域元素[start,end)组成新数组,左闭右开,原数组不发生任何改变
var arr = [1,2,3]; var b = arr.slice(0,2); console.log(b);//[1,2]
-
arr.splice()
可以实现增、删、改
格式
arr.splice(start,length,数据1,数据2,...);
var arr = [1,2,3,4]; arr.splice(2,0,234,23);//从0开始在第2位插入 console.log(arr);//[1, 2, 234, 23, 3, 4] arr.splice(2,1,23);//将第2位删除,然后在第2位加上23 console.log(arr);//[1, 2, 23, 23, 3, 4] arr.splice(2,2,23);//将第2位和第3位删除,然后在第2位加上23 console.log(arr);//[1, 2, 23, 3, 4] arr.splice(3,2);//从第3位开始,往后删除两位 console.log(arr);//[1, 2, 23]
-
arr.join()
改变数组的分隔符(默认是
,
),返回的是一个新的字符串,不改变原数组var arr = [1,2,3,4]; var str = arr.join(""); console.log(typeof(str));//string console.log(arr.join("="));//1=2=3=4 console.log(arr)//[1, 2, 3, 4]
-
arr.reverse()
对数组进行逆序
var arr = [1,2,3,4]; arr.reverse(); console.log(arr);//[4, 3, 2, 1] console.log(arr[0]);//4
-
arr.sort()
对数组按照字符串大小进行排序
var arr = [52,16,14,32,7]; arr.sort(); console.log(arr);//[14, 16, 32, 52, 7]
如果想要按照数值进行排序,在后面传一个函数
var arr = [52,16,14,32,7]; arr.sort(function(a,b) { return a - b;//升序 }); console.log(arr);//[7, 14, 16, 32, 52] arr.sort(function(a,b) { return b - a;//降序 }); console.log(arr);//[52, 32, 16, 14, 7]
-
arr.indexOf(item,start)
用来查找某个数在数组中的下标,start表示从第几位开始查,如果没有查到改数,则返回-1
var arr = [1,2,3,4]; console.log(arr.indexOf(3));//2
-
arr.forEach()
对数组进行遍历
var arr = [10,20,30,40,50]; arr.forEach(function(item,index,arr) { /* item:当前遍历到的元素 index:当前遍历到元素的下标 arr:数组本身 */ console.log(item,index,arr); })
-
arr.map()
map()方法返回一个新的数组,该数组是经过函数处理得到的,map()不会改变原数组
var arr = [10,20,30,40,50]; var newArr = arr.map(function(item,index,arr) { return item * 2; }); console.log(newArr); //[20, 40, 60, 80, 100]
-
arr.filter()
进行过滤操作,设置条件返回想要的结果
var arr = [10,20,30,40,50]; var newArr = arr.filter(function(item,index,arr) { return item > 20; }); console.log(newArr);//[30, 40, 50]
-
arr.some()
在数组中查找有没有指定的元素,返回值位true和false
var arr = [10,20,30,40,50]; var newArr = arr.some(function(item,index,arr) { return item > 20; }); console.log(newArr);//true
-
arr.every()
数组中每一项都符合条件才返回true,否则返回false
-
arr.reduce()
归并
var arr = [10,20,30,40,50]; var newArr = arr.reduce(function(prev,next,index,arr) { /* pre:第一次是下标为0的元素 之后为return的结果 next: */ return prev + next; }); console.log(newArr);//150