1、ECMScript 3中數組的操做方法數組
1.push和pop函數
push在數組的末尾添加一個或者多個元素,返回新數組的長度。因此不能鏈式操做
pop刪除數組的最後一個元素,返回它刪除的值元素spa
var arr = [1, 2, 3, 4, 5]; var arr1=arr.push(6); console.log(arr1)//6 console.log(arr)//[1,2,3,4,5,6] var arr2 = arr.pop(); console.log(arr2)//6 console.log(arr);//[1,2,3,4,5]
2.unshifh和shiftcode
unshift是在數組頭部添加一個或多個元素。若是一次性傳入多個參數,多個參數按照按照原先的位置直接加到數
組中。返回新數組的新數組的長度。
shift:刪除數組的第一個元素,並返回刪除的元素對象
var arr = [1, 2, 3, 4, 5]; var arr1=arr.unshift(6); console.log(arr1)//6 console.log(arr)//[6,1,2,3,4,5] var arr2 = arr.unshift(); console.log(arr2);//6 console.log(arr);//[1,2,3,4,5]
3.concatblog
concat 鏈接 該方法的做用是給數組鏈接新成員 參數有任意個,都是會被拼接到新數組中的成員 若是參數中有數組 會把這個數組拆開排序
var arr = [1]; var arr1 = [2, 3]; // 把arr 和 arr1 鏈接起來 var arr2 = arr.concat(10, 20, 33, arr1); console.log(arr2);//[1,10,20,33,2,3]
4.reverse索引
將一個數組逆序 返回值是原數組 也會影響到原數組ip
var arr = ["a", "b", "c", "d", "e"]; var arr1 = arr.reverse(); console.log(arr);//["e", "d", "c", "b", "a"] console.log(arr1);//["e", "d", "c", "b", "a"]
5.sort 字符串
排序
var arr = [1, 11, 44, 4, 5, 67, 6, 78, 345, 89, 8]; //若是不傳遞參數 會按照第一位數的數字從小到大排序 arr.sort(); console.log(arr);//[1, 11, 345, 4, 44, 5, 6, 67, 78, 8, 89] //若是傳遞參數 參數是一個函數 該函數有兩個參數 a b 若是返回a - b 則升序排列 若是 返回b - a則降序排列 arr.sort(function(a, b) { return b - a; }); console.log(arr);//[345, 89, 78, 67, 44, 11, 8, 6, 5, 4, 1]
6.join
var arr = [1, 2, 3, 4, 5, 6, 7, 8]; console.log(arr.join(""));//12345678
7.slice(start,end)
var arr = [1, 2, 3, 4, 5, 6, 7, 8]; var arr1 = arr.slice(2, 6); // [3, 4, 5, 6] var arr2 = arr.slice(2); // [3, 4, 5, 6, 7, 8] var arr3 = arr.slice(); // [1, 2, 3, 4, 5, 6, 7, 8] var arr4 = arr.slice(0, -1); // [1, 2, 3, 4, 5, 6, 7]; var arr5 = arr.slice(-4, -1); // [5, 6, 7] var arr6 = arr.slice(-4); // [5, 6, 7, 8]
8.splice
var arr = [1, 2, 3, 4, 5, 6, 7, 8]; //1 將3移除 var result = arr.splice(2, 1); console.log(arr); console.log(result); // 2 將3替換成9 var result = arr.splice(2, 1, 9); console.log(arr); console.log(result); //3 在5前面插入5個1 var result = arr.splice(4, 0, 1, 1, 1, 1, 1); console.log(arr); console.log(result); //4 當都只傳遞1個參數時 默認從該位置日後都移除 var result = arr.splice(1); console.log(arr); console.log(result);
2、ECMScript 5中的數組方法
一、forEach() //遍歷
該方法從頭至尾遍歷數組,爲某個元素調用指定的函數。傳遞函數包括三個參數(數組元素、元素索引、數組自己
),若是隻關心數組元素的值,能夠只傳一個參數。
注意:沒法在全部元素的都傳遞給調用函數以前提早結束。也就是沒有像for中同樣的break語句。若是要提交終止,能夠
把forEach()方法放到try塊中。若是forEach()調用的函數拋出forEach.break異常,循環提早結束
var data = [1,2,3]; var sum = 0; data.forEach(function(value){ sum+=value; }); console.log(sum); //6 var data = [10,20,30]; data.forEach(function(v,i,a){ a[i] = v*2; }); console.log(data) //[20, 40, 60]
二、map() //映射
定義:將調用的數組的每一個元素傳遞給指定的函數,並返回一個新數組,它包含該該函數的返回值
注意:傳遞給map的函數應該有返回值,返回的是新數組,不修改調用的數組。
var data3 = [1,2,3]; var b = data3.map(function(val){ return val*10; }); console.log(data3); //[1,2,3] 不改變原數組 console.log(b); //[10,20,30] 新數組
三、filter() //過濾
定義:返回的數組元素是調用的數組的一個子集,就傳遞的函數是用來作邏輯斷定的,返回true,傳給給斷定函數的元素就是這個子集的成員。
var data4 = [1,2,3,4,5]; var b2 = data4.filter(function(val){ return val<3; }); console.log(b2); //[1,2] console.log(data4); //[1,2,3,4,5] 不改變原數組 var b3 = data4.filter(function(val,i){ return i%2; }); console.log(b3); //[2,4] 返回索引爲奇數的元素組成的數組
四、every()
var arr = [1, 2, 3, 4, 5, 6, 7]; var result = arr.every(function(value, index, self) { return typeof value === "number"; }); console.log(result);//true
5.some()
var arr = [1, 2, 3, 4, 5, 6, 7, 8]; var result = arr.some(function(value, index, self) { console.log(value); return typeof value === "string"; }); console.log(result);//false
六、reduce()
定義:使用指定的函數將數組元素進行組合,生成一個單值。參數一是執行簡化操做的函數,參數二是傳給簡化函數的初始值。
注意:一旦確認以後,就中止遍歷數組了。
var data5 = [1,2,3]; var sum = data5.reduce(function(x,y){ return x+y; },0); console.log(sum); //6 var product = data5.reduce(function(x,y){ return x*y; },100); console.log(product); //600
七、indexOf()和lastIndexOf()
定義:搜索整個數組中具備給定值的位子,返回找到第一個元素的索引,若是沒有找到就返回-1;indexOf()是從頭找到尾,lastIndexOf()正好相反
注意:不接受函數做爲參數,第一個參數是須要搜索的值,第二個參數是可選的,表示從哪裏搜索,能夠是負數,表示相對數組末尾的偏移量。
說明:字符串也有這兩個方法,功能相似。
var data6 = [1,2,3,3,4,3,5]; console.log(data6.indexOf(3)); //2 第一個3的索引是2
8.fill()
var arr = [1, 2, 3, 4, 5, 6]; // 將數組的每個成員都填充爲0 arr.fill(0); // 將數組的從第二個開始日後都填充爲0 arr.fill(0, 1); // 將數組的從第二個開始到第四個填充爲0 arr.fill(0, 1, 4); console.log(arr);
3、ECMScript 6中的數組方法
1.find()
var arr=["12","23","345","45"] var result = arr.find(function(value,index,self){ return value.indexOf(23) !=-1; }) console.log(arr)//["12","23","345","45"]
console.log(result)//23
2.findIndex()
var arr = ["張三", "李四", "王五", "趙六", "田七"]; var usernameIndex = arr.findIndex(function(value, index, self) { return value.indexOf("五") != -1; }); console.log(usernameIndex)//2
3.copyWithin()
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.copyWithin(0, 5, 7); console.log(arr);//[6, 7, 3, 4, 5, 6, 7, 8, 9]
4.Array.of()
var arr = Array.of(5,6,78,9) console.log(arr); var arr1 = Array.of(5); var arr2 = new Array(5):
5.Array.from()