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