callback中參數(shù)永遠(yuǎn)是(當(dāng)前值value,下標(biāo)index,原數(shù)組arr)
遍歷:
1:foreach 對(duì)數(shù)組的每個(gè)元素執(zhí)行一次提供的函數(shù)
用法:
array.forEach(callback(currentValue, index, array){
//do something
}, this)
array.forEach(callback[, thisArg])
注意:遍歷作用,沒有返回值,不可以鏈?zhǔn)秸{(diào)用 笑窜;除非拋出異常否則不可以被打斷蛮瞄;如果使用箭頭函數(shù)傳入函數(shù)參數(shù)含蓉,thisArg 參數(shù)會(huì)被忽略命锄,因?yàn)榧^函數(shù)在詞法上綁定了this值
變換:
1:map 創(chuàng)建一個(gè)新數(shù)組囱桨,其結(jié)果是該數(shù)組中的每個(gè)元素都調(diào)用一個(gè)提供的函數(shù)后返回的結(jié)果十办。
用法:
let array = arr.map(function callback(currentValue, index, array) {
// Return element for new_array
}[, thisArg])
注意:
映射返回一個(gè)新數(shù)組長度不變
2:reduce 對(duì)累加器和數(shù)組中的每個(gè)元素 (從左到右)應(yīng)用一個(gè)函 數(shù)秀撇,將其減少為單個(gè)值
用法:
array.reduce(function(accumulator, currentValue, currentIndex, array), initialValue)
注意:
不提供 initialValue ,reduce 會(huì)從索引1的地方開始執(zhí)行 callback 方法向族,跳過第一個(gè)索引呵燕。提供 initialValue ,從索引0開始件相。如果數(shù)組為空并且沒有提供initialValue再扭, 會(huì)拋出TypeError 。如果數(shù)組僅有一個(gè)元素(無論位置如何)并且沒有提initialValue夜矗, 或者有提供initialValue但是數(shù)組為空泛范,那么此唯一值將被返回并且callback不會(huì)被執(zhí)行。提供 initialValue 通常更安全紊撕。返回一個(gè)最終的累加值罢荡。
3:reduceRight 和reduce方向直行相反
4:filter 創(chuàng)建一個(gè)新數(shù)組, 返回通過測試的所有元素。
用法:
var new_array = arr.filter(callback[, thisArg])
注意:
返回true表示保留該元素(通過測試),false則不保留区赵。
查找:
1:some 找到符合條件的停止并返回true 沒有找到返回false
用法:
arr.some(callback[, thisArg])
const isBiggerThan10 = (element, index, array) => {
return element > 10;
}
[2, 5, 8, 1, 4].some(isBiggerThan10); //false
注意:
some 為數(shù)組中的每一個(gè)元素執(zhí)行一次 callback 函數(shù)惭缰,直到找到一個(gè)使得 callback 返回一個(gè)“真值”(即可轉(zhuǎn)換為布爾值 true 的值)。如果找到了這樣一個(gè)值笼才,some 將會(huì)立即返回 true漱受。否則,some 返回 false骡送。callback 只會(huì)在那些”有值“的索引上被調(diào)用昂羡,不會(huì)在那些被刪除或從來未被賦值的索引上調(diào)用。
2:every 數(shù)組全部通過測試返回true 一旦發(fā)現(xiàn)不滿足條件的返回false立即停止
3:includes() 方法用來判斷一個(gè)數(shù)組是否包含一個(gè)指定的值各谚,如果是紧憾,酌情返回 true或 false到千。
用法:arr.includes(searchElement, fromIndex)
注意:是否包含一個(gè)指定的值而不是一個(gè)條件
4:indexof方法返回在數(shù)組中可以找到一個(gè)給定元素的第一個(gè)索引昌渤,如果不存在,則返回-1憔四。
用法:
arr.indexOf(searchElement[, fromIndex = 0])
注意:
開始查找的位置膀息。如果該索引值大于或等于數(shù)組長度,意味著不會(huì)在數(shù)組里查找了赵,返回-1潜支。如果參數(shù)中提供的索引值是一個(gè)負(fù)值,則將其作為數(shù)組末尾的一個(gè)抵消柿汛,即-1表示從最后一個(gè)元素開始查找冗酿,-2表示從倒數(shù)第二個(gè)元素開始查找 ,以此類推络断。 注意:如果參數(shù)中提供的索引值是一個(gè)負(fù)值裁替,仍然從前向后查詢數(shù)組。如果抵消后的索引值仍小于0貌笨,則整個(gè)數(shù)組都將會(huì)被查詢弱判。其默認(rèn)值為0;是否包含一個(gè)指定的值而不是一個(gè)條件;
5:lastIndexOf 從后往前找 類似indexof
6:find 方法返回?cái)?shù)組中滿足提供的測試函數(shù)的第一個(gè)元素的值
用法:
arr.find(callback[, thisArg])
7:findindex 返回?cái)?shù)組中滿足提供的測試函數(shù)的第一個(gè)元素的索引锥惋。否則返回-1昌腰。
用法:
arr.findIndex(callback[, thisArg])
刪除:
1:pop()方法從數(shù)組中刪除最后一個(gè)元素,并返回該元素的值膀跌。此方法更改數(shù)組的長度遭商。
使用:
arr.pop()
注意:
如果你在一個(gè)空數(shù)組上調(diào)用 pop(),它返回 undefined捅伤。
2:shift() 方法從數(shù)組中刪除第一個(gè)元素劫流,并返回該元素的值。此方法更改數(shù)組的長度。
注意:
shift 方法移除索引為 0 的元素(即第一個(gè)元素)困介,并返回被移除的元素大审,其他元素的索引值隨之減 1。如果 length 屬性的值為 0 (長度為 0)座哩,則返回 undefined徒扶。
3:slice() 方法返回一個(gè)從開始到結(jié)束(不包括結(jié)束)選擇的數(shù)組的一部分淺拷貝到一個(gè)新數(shù)組對(duì)象。原始數(shù)組不會(huì)被修改根穷。
添加:
1:push() 方法將一個(gè)或多個(gè)元素添加到數(shù)組的末尾姜骡,并返回?cái)?shù)組的新長度。
2:unshift() 方法將一個(gè)或多個(gè)元素添加到數(shù)組的開頭屿良,并返回新數(shù)組的長度圈澈。
3:concat() 方法用于合并兩個(gè)或多個(gè)數(shù)組。此方法不會(huì)更改現(xiàn)有數(shù)組尘惧,而是返回一個(gè)新數(shù)組康栈。
用法:
var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])
數(shù)組轉(zhuǎn)化字符串:
1:join() 方法將數(shù)組(或一個(gè)類數(shù)組對(duì)象)的所有元素連接到一個(gè)字符串中,不會(huì)改變數(shù)組喷橙。
2:toLocaleString() 返回一個(gè)字符串表示數(shù)組中的元素啥么。數(shù)組中的元素將使用各自的 toLocaleString 方法轉(zhuǎn)成字符串,這些字符串將使用一個(gè)特定語言環(huán)境的字符串(例如一個(gè)逗號(hào) ",")隔開
3:toString() 返回一個(gè)字符串贰逾,表示指定的數(shù)組及其元素悬荣。
注意:
Array 對(duì)象覆蓋了 Object 的 toString 方法胰锌。對(duì)于數(shù)組對(duì)象荆烈,toString 方法返回一個(gè)字符串,該字符串由數(shù)組中的每個(gè)元素的 toString() 返回值經(jīng)調(diào)用 join() 方法連接(由逗號(hào)隔開)組成描睦。例如言缤,下面的代碼創(chuàng)建了一個(gè)數(shù)組嚼蚀,然后使用 toString 方法把該數(shù)組轉(zhuǎn)成一個(gè)字符串。
所以當(dāng)調(diào)用join不能獲得字符串時(shí)調(diào)用toString也不能獲取到.
4: JSON.stringify()
let arr = [{name: 1},{name: 2},{name: 3},{name: 4},{name: 5},{name: 6}, {name: 7}];
let json = JSON.stringify(arr);//獲得字符串