數組Array
創建:
1.使用方括號[ ]進行創建和初始化
var arr=[] //創建一個空數組 var arr=[1,2,3] //創建一個包含數字的數組
2.使用Array構造函數
var arr=new Array() //創建空數組 var arr=new Array(1,2,3) //創建包含數字的數組 var arr=new Array(10) //創建長度為10的數組
3.判斷是否為數組Array.isArray(arr)
var arr=[1,2,3]; Array.isArray(arr) //true
存取函數
不會產生新數組:
1.查找元素indexOf()、lastIndexOf()
var arr=[1,2,3,4,1]; arr.indexOf(1) //0 arr.lastIndexOf(1) //4
2.數組轉字符串join()、toString()
var arr=["a ","b","c"] arr.join(); //a,b,c arr.toString() //a,b,c
不帶逗號的連接:join("")
var arr=['a','b','c']; arr.join("") //abc
會產生新數組
1.連接arr1.concat(arr2)
var arr1=[1,2,3]; var arr2=[4,5,6]; arr1.concat(arr2); //[1,2,3,4,5,6] arr2.concat(arr1); //[4,5,6,1,2,3]
2.截取splice(index,length)
var arr=[1,2,3,4,5,6]; var part=arr.splice(3,3); //[4,5,6]
可變函數
1.添加元素push()、unshift()
var arr=[1,2,3]; arr.push(4); //[1,2,3,4] arr.push(['a','b','c']) //[1,2,3,4,['a','b','c']]
arr.unshift(0); //[0,1,2,3]
arr.unshift(['a','b','c']) //[['a','b','c'],1,2,3]
2.刪除元素pop()、shift()
var arr=[1,2,3]; var back=arr.pop(); //3 var pre=arr.shift(); //1
3.替換元素splice(index,length,new_arr)
var arr=[1,2,3]; var arr1=arr.splice(0,1,'a'); //['a',2,3],arr1=[1]
4.反序reverse()
var arr=[1,2,3]; arr.reverse(); //[3,2,1]
5.排序sort(),按字典順序對元素進行排序
var arr=[3,2,4,8,1]; arr.sort(); //[1, 2, 3, 4, 8]
默認按照從大到小的順序進行排列,可添加排列函數
function cmp(a,b){ return b-a; } var arr=[3,2,4,8,1]; arr.sort(cmp); //[[8, 4, 3, 2, 1]]
迭代器方法
不產生新數組
1.forEach(fn)對數組的每個元素執行fn
var arr=[1,2,3]; arr.forEach(function(i){console.log(i*i)}); //1 4 9
2.every(fn),數組的每個元素均使得fn返回true,則every返回true
var arr=[2,4,6,8]; arr.every(function(i){return i%2==0;}) //true
3.some(fn),數組中存在元素使得fn返回true
var arr=[1,2,3,5]; arr.some(function(i){return i%2==0;}) //true
4.reduce(fn),對數組中的元素進行累計fn運算
var arr=[1,2,3]; var sum=arr.reduce(function(res,cur){return res+=cur;},0) //6,對數組元素求和 var s=['a','b','c']; var str=s.reduce(function(res,cur){return res+=cur;},'') //abc,連接字符串
5.reduceRight(fn),反向數組累計fn運算
var s=['a','b','c']; var str=s.reduceRight(function(res,cur){return res+=cur;},'') //cba,反向連接字符串
生成新數組
1.arr.map(fn),對數組元素執行fn,並返回結果數組
var arr=[1,2,3]; var new_arr=arr.map(function(i){return i*i}) //[1,4,9]
2.arr.filter(fn),數組過濾,返回包含使得fn為true的元素的數組
var arr=[1,2,3,4,5,6]; var new_arr=arr.filter(function(i){return i%2==0;}) //[2,4,6]