js數(shù)組API總結(jié)

callback中參數(shù)永遠是(當前值value,下標index,原數(shù)組arr)

遍歷:
1:foreach 對數(shù)組的每個元素執(zhí)行一次提供的函數(shù)
用法:
array.forEach(callback(currentValue, index, array){
//do something
}, this)
array.forEach(callback[, thisArg])
注意:遍歷作用,沒有返回值,不可以鏈式調(diào)用 ;除非拋出異常否則不可以被打斷;如果使用箭頭函數(shù)傳入函數(shù)參數(shù),thisArg 參數(shù)會被忽略,因為箭頭函數(shù)在詞法上綁定了this值

變換:
1:map 創(chuàng)建一個新數(shù)組,其結(jié)果是該數(shù)組中的每個元素都調(diào)用一個提供的函數(shù)后返回的結(jié)果。
用法:
let array = arr.map(function callback(currentValue, index, array) {
// Return element for new_array
}[, thisArg])
注意:
映射返回一個新數(shù)組長度不變

2:reduce 對累加器和數(shù)組中的每個元素 (從左到右)應(yīng)用一個函 數(shù),將其減少為單個值
用法:
array.reduce(function(accumulator, currentValue, currentIndex, array), initialValue)
注意:
不提供 initialValue ,reduce 會從索引1的地方開始執(zhí)行 callback 方法,跳過第一個索引。提供 initialValue ,從索引0開始。如果數(shù)組為空并且沒有提供initialValue, 會拋出TypeError 。如果數(shù)組僅有一個元素(無論位置如何)并且沒有提initialValue, 或者有提供initialValue但是數(shù)組為空,那么此唯一值將被返回并且callback不會被執(zhí)行。提供 initialValue 通常更安全。返回一個最終的累加值。

3:reduceRight 和reduce方向直行相反

4:filter 創(chuàng)建一個新數(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ù)組中的每一個元素執(zhí)行一次 callback 函數(shù),直到找到一個使得 callback 返回一個“真值”(即可轉(zhuǎn)換為布爾值 true 的值)。如果找到了這樣一個值,some 將會立即返回 true。否則,some 返回 false。callback 只會在那些”有值“的索引上被調(diào)用,不會在那些被刪除或從來未被賦值的索引上調(diào)用。

2:every 數(shù)組全部通過測試返回true 一旦發(fā)現(xiàn)不滿足條件的返回false立即停止

3:includes() 方法用來判斷一個數(shù)組是否包含一個指定的值,如果是,酌情返回 true或 false。
用法:arr.includes(searchElement, fromIndex)
注意:是否包含一個指定的值而不是一個條件

4:indexof方法返回在數(shù)組中可以找到一個給定元素的第一個索引,如果不存在,則返回-1。
用法:
arr.indexOf(searchElement[, fromIndex = 0])
注意:
開始查找的位置。如果該索引值大于或等于數(shù)組長度,意味著不會在數(shù)組里查找,返回-1。如果參數(shù)中提供的索引值是一個負值,則將其作為數(shù)組末尾的一個抵消,即-1表示從最后一個元素開始查找,-2表示從倒數(shù)第二個元素開始查找 ,以此類推。 注意:如果參數(shù)中提供的索引值是一個負值,仍然從前向后查詢數(shù)組。如果抵消后的索引值仍小于0,則整個數(shù)組都將會被查詢。其默認值為0;是否包含一個指定的值而不是一個條件;
5:lastIndexOf 從后往前找 類似indexof

6:find 方法返回數(shù)組中滿足提供的測試函數(shù)的第一個元素的值
用法:
arr.find(callback[, thisArg])
7:findindex 返回數(shù)組中滿足提供的測試函數(shù)的第一個元素的索引。否則返回-1。
用法:
arr.findIndex(callback[, thisArg])

刪除:
1:pop()方法從數(shù)組中刪除最后一個元素,并返回該元素的值。此方法更改數(shù)組的長度。
使用:
arr.pop()
注意:
如果你在一個空數(shù)組上調(diào)用 pop(),它返回 undefined。

2:shift() 方法從數(shù)組中刪除第一個元素,并返回該元素的值。此方法更改數(shù)組的長度。
注意:
shift 方法移除索引為 0 的元素(即第一個元素),并返回被移除的元素,其他元素的索引值隨之減 1。如果 length 屬性的值為 0 (長度為 0),則返回 undefined。

3:slice() 方法返回一個從開始到結(jié)束(不包括結(jié)束)選擇的數(shù)組的一部分淺拷貝到一個新數(shù)組對象。原始數(shù)組不會被修改。

添加:
1:push() 方法將一個或多個元素添加到數(shù)組的末尾,并返回數(shù)組的新長度。
2:unshift() 方法將一個或多個元素添加到數(shù)組的開頭,并返回新數(shù)組的長度。
3:concat() 方法用于合并兩個或多個數(shù)組。此方法不會更改現(xiàn)有數(shù)組,而是返回一個新數(shù)組。
用法:
var new_array = old_array.concat(value1[, value2[, ...[, valueN]]])

數(shù)組轉(zhuǎn)化字符串:
1:join() 方法將數(shù)組(或一個類數(shù)組對象)的所有元素連接到一個字符串中,不會改變數(shù)組。

2:toLocaleString() 返回一個字符串表示數(shù)組中的元素。數(shù)組中的元素將使用各自的 toLocaleString 方法轉(zhuǎn)成字符串,這些字符串將使用一個特定語言環(huán)境的字符串(例如一個逗號 ",")隔開

3:toString() 返回一個字符串,表示指定的數(shù)組及其元素。
注意:
Array 對象覆蓋了 Object 的 toString 方法。對于數(shù)組對象,toString 方法返回一個字符串,該字符串由數(shù)組中的每個元素的 toString() 返回值經(jīng)調(diào)用 join() 方法連接(由逗號隔開)組成。例如,下面的代碼創(chuàng)建了一個數(shù)組,然后使用 toString 方法把該數(shù)組轉(zhuǎn)成一個字符串。
所以當調(diào)用join不能獲得字符串時調(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);//獲得字符串

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容