1.copyWithin() 方法 會改變原數組
復制數組的前面兩個元素到后面兩個元素上:
array.copyWithin(target, start, end)
參數 描述
target 必需。復制到指定目標索引位置。
start 可選。元素復制的起始位置。
end 可選。停止復制的索引位置 (默認為 array.length)。如果為負值,表示倒數。
var arr = [1,2,3,4,5]; arr.copyWithin(3,0,2); console.log(arr); //1,2,3,1,2
2.every(function(){}) 不會改變原數組
給數組的每一項都運行一個函數,如果每一項都返回true,則返回true;
var arr=[1,2,3,4,5]; var result=arr.every(function(item){ return item>1; }) console.log(result); //false
3.some(function(){}) 不會改變原數組
給數組的每一項都運行一個函數,如果有一項返回true,則返回true;
var arr=[1,2,3,4,5] var result=arr.some(function(item){ return item>1; }) console.log(result) //true
4.fill() 使用一個固定值來填充數組 會改變原數組
array.fill(value, start, end)
參數 描述
value 必需。填充的值。
start 可選。開始填充位置。
end 可選。停止填充位置 (默認為 array.length)
var arr=[1,2,3,4,5]; arr.fill("哈哈",0,3); console.log(arr); //[ '哈哈', '哈哈', '哈哈', 1, 2 ]
5.filter() 不會改變原始數組
創建一個新的數組,新數組中的元素是通過檢查指定數組中符合條件的所有元素。
注意: filter() 不會對空數組進行檢測。
var ages = [22, 53, 16, 40]; var ar5=ages.filter(function(age){ return age>30; }) console.log(ar5) //[ 53, 40 ]
6.find() 不會改變原始數組
返回通過測試(函數內判斷)的數組的第一個元素的值。
find() 方法為數組中的每個元素都調用一次函數執行:
當數組中的元素在測試條件時返回 true 時, find() 返回符合條件的元素,之后的值不會再調用執行函數。
如果沒有符合條件的元素返回 undefined
注意: find() 對于空數組,函數是不會執行的。
var num = [212, 537, 160, 401]; function odd(x){ return x%2; } var ar6=num.find(odd); console.log(ar6); //537
7.findIndex() 不會改變原數組
返回傳入一個測試條件(函數)符合條件的數組第一個元素位置。
findIndex() 方法為數組中的每個元素都調用一次函數執行:
當數組中的元素在測試條件時返回 true 時, findIndex() 返回符合條件的元素的索引位置,之后的值不會再調用執行函數。
如果沒有符合條件的元素返回 -1
注意: findIndex() 對于空數組,函數是不會執行的。
var num = [212, 537, 160, 401]; function odd(x){ return x%2; } console.log(num.findIndex(odd)); //1
8.indexOf() 不會改變原數組
搜索數組中的元素,并返回它所在的位置。
var num = [212, 537, 160, 401]; console.log(num.indexOf(160)); //2
9.lastIndexOf() 不會改變原數組
返回一個指定的字符串值最后出現的位置,在一個字符串中的指定位置從后向前搜索。
var num = [212, 537, 160, 401]; console.log(num.indexOf(160)); //
10.join() 會改變原數組
把數組轉化為字符串,元素是通過指定的分隔符進行分隔的,如果沒有默認為逗號
toString() 會改變原數組
把數組轉換為字符串,并返回結果,沒有參數
var num = [212, 537, 160, 401]; console.log(num.join()); //212,537,160,401
11.map() 不會改變原數組
通過指定函數處理數組的每個元素,并返回處理后的數組
var arr=[12,23,45,56,78]; var arr1=arr.map(function(x){ return x+1; }) console.log(arr1); //[ 13, 24, 46, 57, 79 ] console.log(arr); //[ 12, 23, 45, 56, 78 ]
12.forEach() 不會改變原數組
方法用于調用數組的每個元素,并將元素傳遞給回調函數。
注意: forEach() 對于空數組是不會執行回調函數的
var num=[ 212, 537, 160, 401 ]; num.forEach(function(num){ return num/2; }) console.log(num); //[ 212, 537, 160, 401 ]
13.reduce() 不會改變原數組
接收一個函數作為累加器,數組中的每個值(從左到右)開始縮減,最終計算為一個值。
reduce() 可以作為一個高階函數,用于函數的 compose。
注意: reduce() 對于空數組是不會執行回調函數的
var arr=[ 12, 23, 45, 56, 78 ]; var arr2=arr.reduce(function(total,item){ return total-item; }) console.log(arr2); //-190 console.log(arr); //[ 12, 23, 45, 56, 78 ]
14.reduceRight() 不會改變原數組
功能和 reduce() 功能是一樣的,不同的是 reduceRight() 從數組的末尾向前將數組中的數組項做累加。
注意: reduce() 對于空數組是不會執行回調函數的
var arr=[ 12, 23, 45, 56, 78 ]; var arr2=arr.reduceRight(function(total,item){ return total-item; }) console.log(arr2); //-58 console.log(arr); //[ 12, 23, 45, 56, 78 ]
15.pop() 會改變原數組
刪除數組的最后一個元素并返回刪除的元素。沒有參數
shift() 會改變原數組
刪除并返回數組的第一個元素。沒有參數
push() 會改變原數組
向數組的末尾添加一個或更多元素,并返回新的長度。參數為要添加的元素,可以為一個或多個
unshift() 會改變原數組
向數組的開頭添加一個或更多元素,并返回新的長度。參數為要添加的元素,可以為一個或多個
16.sort() 會改變原數組
對數組的元素進行排序,只能是一位數,如果是兩位數會按字典序排列,改進:加一個回調函數
var arr2=[2,8,45,12,5,67,9]; arr2.sort(function(a,b){ return a-b; }); console.log(arr2); //[ 2, 5, 8, 9, 12, 45, 67 ]
17.reverse() 會改變原數組
反轉數組的元素順序
var arr2=[ 2, 5, 8, 9, 12, 45, 67 ]; arr2.reverse(); console.log(arr2); //[ 67, 45, 12, 9, 8, 5, 2 ]
18.valueOf() 不會改變原數組
返回數組對象的原始值,一般原樣返回
var arr2=[ 67, 45, 12, 9, 8, 5, 2 ]; arr2.valueOf(); console.log(arr2); //[ 67, 45, 12, 9, 8, 5, 2 ] // 可以自己定義一個對象的valueOf()方法來覆蓋它原來的方法。 // 這個方法不能含有參數,方法里必須return一個值。 var x = {}; x.valueOf = function(){ return 10; } console.log(x+1);//
19.slice() 不會改變原數組
選取數組的的一部分,并返回一個新數組。
array.slice(start, end)
參數 描述
start 可選。規定從何處開始選取(包括)。如果是負數,那么它規定從數組尾部開始算起的位置。也就是說,-1 指最后一個元 素,-2 指倒數第二個元素,以此類推。
end 可選。規定從何處結束選取(不包括)。該參數是數組片斷結束處的數組下標。
如果沒有指定該參數,那么切分的數組包含從 start 到數組結束的所有元素。
如果這個參數是負數,那么它規定的是從數組尾部開始算起的元素。
var arr2=[ 67, 45, 12, 9, 8, 5, 2 ]; console.log(arr2.slice(1,4)); //[ 45, 12, 9 ] console.log(arr2); //[ 67, 45, 12, 9, 8, 5, 2 ]
20.splice() 會改變原始數組
方法用于插入、刪除或替換數組的元素。
array.splice(index,howmany,item1,.....,itemX)
參數 描述
index 必需。規定從何處添加/刪除元素。
該參數是開始插入和(或)刪除的數組元素的下標,必須是數字。
howmany 必需。規定應該刪除多少元素。必須是數字,但可以是 "0"。
如果未規定此參數,則刪除從 index 開始到原數組結尾的所有元素。
item1, ..., itemX 可選。要添加到數組的新元素
arr3=[2,3,4,5,6,7,8]; //刪除 arr3.splice(2,3); console.log(arr3); //[ 2, 3, 7, 8 ] //增加 arr3.splice(1,0,9,10); console.log(arr3); //[ 2, 9, 10, 3, 7, 8 ] //替換 arr3.splice(0,3,8,7,3); //[ 8, 7, 3, 3, 7, 8 ] console.log(arr3);
最后再小結一下:
會改變原數組的方法:copyWithin()、fill()、join()、pop()、push()、shift()、unshift()、sort()、reverse()、splice();
不會改變原數組的方法:every()、some()、filter()、find()、findIndex()、indexOf()、lastIndexOf()、map()、forEach()、reduce()、reduceRight()、valueOf()、slice();
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com