摘要:如果這個參數為空,會傳遞給值返回符合測試條件的第一個數組元素索引,如果沒有符合條件的則返回必需。沒有返回值必需。當前元素所屬的數組對象必需。初始值或者計算結束后的返回值。
1.toString: 返回以數組中的每個值的字符串形式拼接而成的一個以逗號分割的字符串
toStringArr = [1, 2, 3, 4, 5, 6] console.log(toStringArr.toString()) // -> 1,2,3,4,5,6
2.valueOf: 返回數組對象的原始值。返回的還是數組
valueOfArr = [1, 2, 3, 4, 5, 6] console.log(valueOfArr.valueOf()) // -> [1, 2, 3, 4, 5, 6]
3.join: 通過指定的分隔符進行分隔并返回一個字符串
var arr = [1, 2, 3, 4, 5, 6] var joinArr = arr.join("&") console.log("join:" + joinArr) // -> join:1&2&3&4&5&6
4.push: 向數組的末尾添加一個或更多元素,并返回新的長度
var pushArr = [1, 2, 3, 4, 5, 6] pushArr.push(7) console.log(pushArr) // -> [1, 2, 3, 4, 5, 6, 7]
5.pop: 刪除數組的最后一個元素并返回刪除的元素, 如果數組為空就返回undefined
var popArr = [1, 2, 3, 4, 5, 6] var popEle = popArr.pop() console.log(popEle, popArr) // -> 6, [1, 2, 3, 4, 5]
6.shift: 刪除并返回數組的第一個元素, 如果數組為空,則shift() 方法不進行任何操作,返回undefined
var shiftArr = [1, 2, 3, 4, 5, 6] var shiftEle = shiftArr.shift() console.log(shiftEle, shiftArr) // -> 1, [2, 3, 4, 5, 6]
7.unshift: 向數組的開頭添加一個或更多元素,并返回新的長度
var unshiftArr = [1, 2, 3, 4, 5, 6] unshiftArr.unshift(0) console.log(unshiftArr) // -> [0, 1, 2, 3, 4, 5, 6]
8.reverse: 反轉數組的元素順序
var reverseArr = [1, 2, 3, 4, 5, 6] reverseArr.reverse() console.log(reverseArr) // -> [6, 5, 4, 3, 2, 1]
9.sort: 對數組的元素進行排序
// a. var sortArr1 = [1, 3, 5, 2, 7, 6] sortArr1.sort() console.log(sortArr1) // -> [1, 2, 3, 5, 6, 7] // b. 因為sort排序是從左至右比較,只要其中一個比較出了結果,就直接返 var sortArr2 = [1, 3, 19, 5, 17, 6] sortArr2.sort() console.log(sortArr2) // -> [1, 17, 19, 3, 5, 6] // c: 封裝sort function sort(arr, type) { type = type || 1 return arr.sort( (a, b) => { switch(type) { case 1: // 從小到大 return a - b case 2: // 從大到小 return b - a case 3: // 隨機排序 return Math.random() - 0.5 default: return arr } }) } var sortArr3 = [1, 3, 19, 5, 17, 6] sort(sortArr3) console.log(sortArr3)
10.concat:連接兩個或更多的數組,并返回結果
var concat1 = [1, 2, 3], concat2 = [4, 5, 6] concatArr = concat1.concat(concat2) console.log(concatArr) // -> [1, 2, 3, 4, 5, 6]
11.slice(start, end): 選取數組的的一部分,并返回一個新數組, start必須,end可選
var sliceArr = [1, 2, 3, 4, 5, 6] var sliceNewArr = sliceArr.slice(1, -1) // 截取第二個 到 倒數第二個 console.log(sliceNewArr) // -> [2, 3, 4, 5]
12.splice(index, howmany, item1,.....,itemX): 從數組中添加或刪除元素
/* index: 必需。規定從何處添加/刪除元素。 該參數是開始插入和(或)刪除的數組元素的下標,必須是數字 howmany: 必需。規定應該刪除多少元素。必須是數字,但可以是 "0"。 如果未規定此參數,則刪除從 index 開始到原數組結尾的所有元素。 item1,.....,itemX: 可選。要添加到數組的新元素 */ var spliceArr1 = [1, 2, 3, 4, 5, 6] spliceArr1.splice(2, 2, 10, 12) // 從下標為2 的地方開始刪除 后面的兩個元素, 并在這個地方插入 10,12兩個元素 console.log(spliceArr1) // -> [1, 2, 10, 12, 5, 6] var spliceArr = [1, 2, 3, 4, 5, 6] spliceArr.splice(2, 0, 10, 12) // 當需要刪除的元素為0, 相當于在這個位置插入元素 console.log(spliceArr) // -> [1, 2, 10, 12, 3, 4, 5, 6]
13.copyWithin(target, start, end): 從數組的指定位置拷貝元素到數組的另一個指定位置中
/* target: 必需。復制到指定目標索引位置。 start: 必需。元素復制的起始位置。 end: 可選。停止復制的索引位置 (默認為 array.length) */ var copyWithinArr = [1, 2, 3, 4, 5, 6] copyWithinArr.copyWithin(1, 2, 4) console.log(copyWithinArr) // -> [1, 3, 4, 4, 5, 6]
14.fill(value, start, end): 用于將一個固定值替換數組的元素
/* value: 必需。填充的值。 start: 可選。開始填充位置。 end: 可選。停止填充位置 (默認為 array.length) */ var fillArr = [1, 2, 3, 4, 5, 6] fillArr.fill(9, 2, 4) console.log(fillArr) // -> [1, 2, 9, 9, 5, 6]
15.includes(searchElement, fromIndex):用來判斷一個數組是否包含一個指定的值,如果是返回 true,否則false
var includesArr = [1, 2, 3, 4, 5, 6] var includes1 = includesArr.includes(3) var includes2 = includesArr.includes(10) console.log(includes1, includes2) // -> true, false
16.indexOf(item,start):可返回某個指定的字符串值在字符串中首次出現的位置
var indexOfArr = [1, 2, 3, 4, 3, 6] var indexOfEle = indexOfArr.indexOf(3) console.log(indexOfEle) // -> 2
17.lastIndexOf(item,start):返回一個指定的字符串值最后出現的位置,在一個字符串中的指定位置從后向前搜索
var lastIndexOfArr = [1, 2, 3, 4, 3, 6] var lastIndexOfEle = lastIndexOfArr.lastIndexOf(3) console.log(lastIndexOfEle) // -> 4
18.find(function(currentValue, index, arr),thisValue): 返回傳入一個測試條件(函數)符合條件的數組第一個元素
// function(currentValue, index, arr): // a. currentValue: 必需。當前元素 // b. index: 可選。當前元素的索引值 // c. arr: 可選。當前元素所屬的數組對象 // thisValue: 可選。 傳遞給函數的值一般用 "this" 值。 如果這個參數為空, "undefined" 會傳遞給 "this" 值 var findArr = [1, 2, 3, 4, 5, 6] var findEle = findArr.find( function(currentValue, index, arr) { return currentValue >= 4 }) console.log(findEle)
19.findIndex(function(currentValue, index, arr),thisValue): 返回符合測試條件的第一個數組元素索引,如果沒有符合條件的則返回 -1
// function(currentValue, index, arr): // a. currentValue: 必需。當前元素 // b. index: 可選。當前元素的索引值 // c. arr: 可選。當前元素所屬的數組對象 // thisValue: 可選。 傳遞給函數的值一般用 "this" 值。 如果這個參數為空, "undefined" 會傳遞給 "this" 值 var findIndexArr = [1, 2, 3, 4, 5, 6] var findIndexEle = findIndexArr.findIndex( function(currentValue, index, arr) { return currentValue >= 4 }) console.log(findIndexEle)
20.forEach(function(currentValue, index, arr), thisValue): 用于調用數組的每個元素,并將元素傳遞給回調函數。沒有返回值
// function(currentValue, index, arr): // a. currentValue: 必需。當前元素 // b. index: 可選。當前元素的索引值 // c. arr: 可選。當前元素所屬的數組對象 // thisValue: 可選。 傳遞給函數的值一般用 "this" 值。 如果這個參數為空, "undefined" 會傳遞給 "this" 值 var forEachArr = [1, 2, 3, 4, 5, 6] forEachArr.forEach( function(currentValue, index, arr){ console.log(currentValue) }) // -> 依次打印 1 2 3 4 5 6, 沒有返回值
21.map(function(currentValue, index, arr), thisValue): 返回一個新數組,數組中的元素為原始數組元素調用函數處理后的值
// function(currentValue, index, arr): // a. currentValue: 必需。當前元素 // b. index: 可選。當前元素的索引值 // c. arr: 可選。當前元素所屬的數組對象 // thisValue: 可選。 傳遞給函數的值一般用 "this" 值。 如果這個參數為空, "undefined" 會傳遞給 "this" 值 var mapArr = [1, 2, 3, 4, 5, 6] var mapNewArr = mapArr.map( function(currentValue, index, arr){ // console.log(currentValue) return currentValue*2 }) console.log(mapNewArr) // -> [2, 4, 6, 8, 10, 12]
22.reduce(function(total, currentValue, index, arr), thisValue): 接收一個函數作為累加器,數組中的每個值(從左到右)開始縮減,最終計算為一個值
// function(currentValue, index, arr): // a. currentValue: 必需。當前元素 // b. index: 可選。當前元素的索引值 // c. arr: 可選。當前元素所屬的數組對象 // d: total: 必需。初始值, 或者計算結束后的返回值。 // thisValue: 可選。 傳遞給函數的值一般用 "this" 值。 如果這個參數為空, "undefined" 會傳遞給 "this" 值 var reduceArr = [1, 2, 3, 4, 5, 6] var reduceNewArr = reduceArr.reduce( function(total, currentValue, index, arr){ return total - currentValue }) console.log(reduceNewArr) // -> 19
23.reduceRight(function(total, currentValue, index, arr), thisValue): 接收一個函數作為累加器,數組中的每個值(從右到左)開始縮減,最終計算為一個值
// function(currentValue, index, arr): // a. currentValue: 必需。當前元素 // b. index: 可選。當前元素的索引值 // c. arr: 可選。當前元素所屬的數組對象 // d: total: 必需。初始值, 或者計算結束后的返回值。 // thisValue: 可選。 傳遞給函數的值一般用 "this" 值。 如果這個參數為空, "undefined" 會傳遞給 "this" 值 var reduceRightArr = [1, 2, 3, 4, 5, 6] var reduceRightNewArr = reduceRightArr.reduceRight( function(total, currentValue, index, arr){ return total - currentValue }) console.log(reduceRightNewArr) // -> -9
24.some(function(currentValue, index, arr), thisValue): 如果有一個元素滿足條件,則表達式返回true , 剩余的元素不會再執行檢測。如果沒有滿足條件的元素,則返回false
// function(currentValue, index, arr): // a. currentValue: 必需。當前元素 // b. index: 可選。當前元素的索引值 // c. arr: 可選。當前元素所屬的數組對象 // thisValue: 可選。 傳遞給函數的值一般用 "this" 值。 如果這個參數為空, "undefined" 會傳遞給 "this" 值 var someArr = [1, 2, 3, 4, 5, 6] var someEle1 = someArr.some( function(currentValue, index, arr){ return currentValue > 4 }) var someEle2 = someArr.some( function(currentValue, index, arr){ return currentValue > 6 }) console.log(someEle1, someEle2) // -> true, false
25.every(function(currentValue, index, arr), thisValue): 如果數組中檢測到有一個元素不滿足,則整個表達式返回 false ,且剩余的元素不會再進行檢測。如果所有元素都滿足條件,則返回 true
// function(currentValue, index, arr): // a. currentValue: 必需。當前元素 // b. index: 可選。當前元素的索引值 // c. arr: 可選。當前元素所屬的數組對象 // thisValue: 可選。 傳遞給函數的值一般用 "this" 值。 如果這個參數為空, "undefined" 會傳遞給 "this" 值 var everyArr = [1, 2, 3, 4, 5, 6] var everyEle1 = everyArr.every( function(currentValue, index, arr){ return currentValue > 0 }) var everyEle2 = everyArr.every( function(currentValue, index, arr){ return currentValue > 1 }) console.log(everyEle1, everyEle2) // -> true, false
26.filter(function(currentValue, index, arr), thisValue):創建一個新的數組,新數組中的元素是通過檢查指定數組中符合條件的所有元素
// function(currentValue, index, arr): // a. currentValue: 必需。當前元素 // b. index: 可選。當前元素的索引值 // c. arr: 可選。當前元素所屬的數組對象 // thisValue: 可選。 傳遞給函數的值一般用 "this" 值。 如果這個參數為空, "undefined" 會傳遞給 "this" 值 var filterArr = [1, 2, 3, 4, 5, 6] var filterNewArr = filterArr.filter( function(currentValue, index, arr){ return currentValue > 2 }) console.log(filterNewArr) // -> [3, 4, 5, 6]
27.from: 將類數組對象和可遍歷對象轉化為數組
fromObj = { 0: "0", 1: "1", 3: "3", length:4 } arrayArr = Array.from(fromObj) console.log(arrayArr) // -> ["0", "1", undefined, "3"]
28.of: 創建一個具有可變數量參數的新數組實例,而不考慮參數的數量或類型
Array.of(7); // -> [7] Array.of(1, 2, 3); // -> [1, 2, 3] Array(7); // -> [ , , , , , , ] Array(1, 2, 3); // -> [1, 2, 3]
博客地址:javascript 總結(Array篇)
github: javascript 總結(Array篇)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/90634.html
摘要:中基礎數據類型數據類型名稱數據類型說明只有一個值,即,聲明變量的初始值。只有一個值,即,表示空指針,的值是派生的值。由零或多個位字符組成只有兩個值,即和該類型使用來表示整數和浮點數。中的對象其實就是一組數據和功能的集合。 JavaScript 中基礎數據類型 數據類型名稱 數據類型說明 Undefined 只有一個值,即 undefined ,聲明變量的初始值。 Nul...
摘要:數組的構造函數由于數組的構造函數在處理參數時的不確定性,因此強烈建議使用符號來創建一個新數組。總結綜上所述,我們應該盡量使用來創建新函數,而不是數組的構造函數,這樣代碼將有更好的可讀性。 數組的構造函數 由于數組的構造函數在處理參數時的不確定性,因此強烈建議使用 [] 符號來創建一個新數組。 [1, 2, 3]; // Result: [1, 2, 3] new Array(1, ...
摘要:字面形式允許你在不需要使用操作符和構造函數顯式創建對象的情況下生成引用值。操作符以一個對象和一個構造函數作為參數鑒別數組有前一小結可以知道鑒別數組類型可以使用。屬性是函數獨有的,表明該對象可以被執行。這種函數被稱為匿名函數。 引子: 1.JavaScript 中的變量類型和類型檢測 1.1原始類型 1.2引用類型 1.3內建類型的實例化 1.4函數的字面形式 1.5正則表達式的字...
摘要:操作符還有可能是設計中最大缺陷,因為它幾乎是完全破損的。由于用法與調用函數的語法相似,因此常被誤以為是函數調用,實際上并不存在名為的函數,只是一個操作符而已。而列則表示對象內部的屬性。屬性文檔中明確地給出了獲得屬性的途徑,就是使用。 typeof 操作符(還有 instanceof)可能是 Javascript 設計中最大缺陷,因為它幾乎是完全破損的。由于 typeof 用法與調用函數...
因為最近有博友反饋我的博文是直接翻譯的參考鏈接內的內容,所以我在這里要說明一下,以免引起不必要的誤會。 首先,我很喜歡 segmentfault 的交流和學習的氛圍,所以我很愿意在這里跟各位 SFer 交流學習心得,相互學習,共同進步。 第二,我做技術方面的工作不久,所以學習經歷也不是很長,但是我發現寫博客,總結自己的學習心得是個很好的學習習慣,至少對于我個人而言,我于此收益頗豐,所以我決定堅持一...
閱讀 1849·2021-09-29 09:35
閱讀 2711·2021-09-22 15:25
閱讀 1972·2021-08-23 09:43
閱讀 2049·2019-08-30 15:54
閱讀 3349·2019-08-30 15:53
閱讀 2387·2019-08-30 13:50
閱讀 2398·2019-08-30 11:24
閱讀 2269·2019-08-29 15:37