一、陣列
1、function(value, index, array) {}
【格式:】 function (value, index, array) => { // value 指 陣列當前遍歷的值, index 指 陣列當前遍歷的下標, array 指 當前陣列 // ... 自定義函式行為 // return ...; }
2、Array.map(function() {})
回傳值:一個新陣列,
簡單理解為:此方法用于 根據 自定義執行函式 處理陣列中的每個元素,并作為一個新陣列 回傳,不會改變原來的陣列(除非主動修改原陣列的值),
【舉例:給陣列中的每個元素值加 6,并生成一個新陣列】 let arr = [1, 2, 3, 4, 5]; console.log(arr); // 輸出 [1, 2, 3, 4, 5] let newArr = arr.map((value, index, array) => { // value 指 陣列當前遍歷的值, index 指 陣列當前遍歷的下標, array 指 當前陣列 return array[index] += 6; }); console.log(newArr); // 輸出 [7, 8, 9, 10, 11] console.log(arr === newArr); // 輸出 false console.log(arr); // 輸出 [7, 8, 9, 10, 11] console.log(newArr); // 輸出 [7, 8, 9, 10, 11]

3、Array.forEach(function() {})
回傳值:undefined,即沒有回傳值,
簡單理解為:此方法用于 根據 自定義執行函式 處理陣列中的每個元素,回傳 undefined(沒有回傳值),不會改變原來的陣列(除非主動修改原陣列的值),
注:
與 map 方法的區別在于 沒有回傳值,
【舉例:給陣列中的每個元素值加 6,不會生成一個新陣列】 let arr = [1, 2, 3, 4, 5]; console.log(arr); // 輸出 [1, 2, 3, 4, 5] let newArr = arr.forEach((value, index, array) => { // value 指 陣列當前遍歷的值, index 指 陣列當前遍歷的下標, array 指 當前陣列 return array[index] += 6; }); console.log(newArr); // 輸出 undefined console.log(arr === newArr); // 輸出 false console.log(arr); // 輸出 [7, 8, 9, 10, 11] console.log(newArr); // 輸出 undefined

4、Array.filter(function() {})
回傳值:回傳一個新陣列,
簡單理解為:此方法用于 根據 自定義執行函式 處理陣列中的每個元素,過濾原陣列,并回傳一個新陣列,不會改變原來的陣列(除非主動修改原陣列的值),
注:
與 map 方法的區別在于 回傳的是一個過濾后的陣列,
【舉例:過濾陣列中 大于 3 的資料,并作為一個新陣列】 let arr = [1, 2, 3, 4, 5]; console.log(arr); // 輸出 [1, 2, 3, 4, 5] let newArr = arr.filter((value, index, array) => { // value 指 陣列當前遍歷的值, index 指 陣列當前遍歷的下標, array 指 當前陣列 return value > 3; }); console.log(newArr); // 輸出 [4, 5] console.log(arr === newArr); // 輸出 false console.log(arr); // 輸出 [1, 2, 3, 4, 5] console.log(newArr); // 輸出 [4, 5]

5、Array.every(function() {})
回傳值:一個 布林值,
簡單理解為:此方法用于 根據 自定義執行函式 處理陣列中的每個元素,并回傳一個布林值,不會改變原來的陣列(除非主動修改原陣列的值),若回傳值為 true,則表示 陣列每個元素均滿足 function,否則,回傳值為 false,
注:
與 map 方法的區別在于 其回傳的是一個 布林值,
【舉例:比較陣列的每個值,若值均大于 3,則回傳 true,否則回傳 false】 let arr = [1, 2, 3, 4, 5]; console.log(arr); // 輸出 [1, 2, 3, 4, 5] let newArr = arr.every((value, index, array) => { // value 指 陣列當前遍歷的值, index 指 陣列當前遍歷的下標, array 指 當前陣列 return value > 3; }); console.log(newArr); // 輸出 false console.log(arr === newArr); // 輸出 false console.log(arr); // 輸出 [1, 2, 3, 4, 5] console.log(newArr); // 輸出 false

6、Array.some(function() {})
回傳值:一個 布林值,
簡單理解為:此方法用于 根據 自定義執行函式 處理陣列中的每個元素,并回傳一個布林值,不會改變原來的陣列(除非主動修改原陣列的值),若回傳值為 true,則表示 陣列每個元素有部分滿足 function,回傳值為 false,則表示陣列每個元素 均不滿足 function,
注:
與 map 方法的區別在于 其回傳的是一個 布林值,
【舉例:比較陣列的每個值,若部分值大于 3,則回傳 true,若值全小于 3,則回傳 false】 let arr = [1, 2, 3, 4, 5]; console.log(arr); // 輸出 [1, 2, 3, 4, 5] let newArr = arr.some((value, index, array) => { // value 指 陣列當前遍歷的值, index 指 陣列當前遍歷的下標, array 指 當前陣列 return value > 3; }); console.log(newArr); // 輸出 true console.log(arr === newArr); // 輸出 false console.log(arr); // 輸出 [1, 2, 3, 4, 5] console.log(newArr); // 輸出 true

7、Array.push(data)
回傳值:當前陣列的長度,會改變原陣列,
簡單理解為:向陣列的末尾添加一個資料,并回傳添加后的陣列長度,
【舉例:向陣列末尾添加一個資料,并回傳添加后的陣列長度】 let arr = [1, 2, 3, 4, 5]; console.log(arr); // 輸出 [1, 2, 3, 4, 5] let newArr = arr.push(1); console.log(newArr); // 輸出 6 console.log(arr === newArr); // 輸出 false console.log(arr); // 輸出 [1, 2, 3, 4, 5, 1] console.log(newArr); // 輸出 6

8、Array.pop()
回傳值:當前洗掉的資料,會改變原陣列,
簡單理解為:從陣列的末尾洗掉最后一個資料,并回傳洗掉后的陣列資料,
【舉例:從陣列末尾洗掉最后一個資料,并回傳當前洗掉的資料】 let arr = [1, 2, 3, 4, 5]; console.log(arr); // 輸出 [1, 2, 3, 4, 5] let newArr = arr.pop(); console.log(newArr); // 輸出 5 console.log(arr === newArr); // 輸出 false console.log(arr); // 輸出 [1, 2, 3, 4] console.log(newArr); // 輸出 5

9、Array.shift()
回傳值:當前洗掉的資料,會改變原陣列,
簡單理解為:從陣列的頭部洗掉第一個資料,并回傳洗掉后的陣列資料,
【舉例:洗掉陣列頭部的第一個元素,并回傳該值】 let arr = [1, 2, 3, 4, 5]; console.log(arr); // 輸出 [1, 2, 3, 4, 5] let newArr = arr.shift(); console.log(newArr); // 輸出 1 console.log(arr === newArr); // 輸出 false console.log(arr); // 輸出 [2, 3, 4, 5] console.log(newArr); // 輸出 1

10、Array.unshift(data1, data2)
回傳值:當前陣列的長度,會改變原陣列,
簡單理解為:將一些資料添加到陣列的頭部,
【舉例:將 1, 2, 4 添加到陣列的頭部】 let arr = [1, 2, 3, 4, 5]; console.log(arr); // 輸出 [1, 2, 3, 4, 5] let newArr = arr.unshift(1, 2, 4); console.log(newArr); // 輸出 8 console.log(arr === newArr); // 輸出 false console.log(arr); // 輸出 [1, 2, 4, 1, 2, 3, 4, 5] console.log(newArr); // 輸出 8

11、Array.concat(Array)
回傳值:一個新的陣列,不會改變原陣列(除非主動修改),
簡單理解為:兩個陣列拼接成一個陣列,
【舉例:兩陣列拼接,回傳一個新陣列】 let arr = [1, 2, 3, 4, 5]; console.log(arr); // 輸出 [1, 2, 3, 4, 5] let newArr = arr.concat([1, 2, 3, 4, 5]); console.log(newArr); // 輸出 [1, 2, 3, 4, 5, 1, 2, 3, 4, 5] console.log(arr === newArr); // 輸出 false console.log(arr); // 輸出 [1, 2, 3, 4, 5] console.log(newArr); // 輸出 [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

12、Array.toString()
回傳值:一個字串,不會改變原陣列(除非主動修改),
簡單理解為:將當前陣列轉為字串輸出,不改變原陣列,
【舉例:將陣列轉為字串,不改變原陣列】 let arr = [1, 2, 3, 4, 5]; console.log(arr); // 輸出 [1, 2, 3, 4, 5] let newArr = arr.toString(); console.log(newArr); // 輸出 1, 2, 3, 4, 5 console.log(arr === newArr); // 輸出 false console.log(arr); // 輸出 [1, 2, 3, 4, 5] console.log(newArr); // 輸出 1, 2, 3, 4, 5

13、Array.join()
回傳值:一個字串,不會改變原陣列(除非主動修改),
簡單理解為:將當前陣列轉為字串輸出,不改變原陣列,
注:
與 toString 方法的區別在于,可以自定義資料間連接的符號(默認以逗號分隔),
【舉例:將陣列轉為字串,并以 * 分隔】 let arr = [1, 2, 3, 4, 5]; console.log(arr); // 輸出 [1, 2, 3, 4, 5] let newArr = arr.join('*'); console.log(newArr); // 輸出 1*2*3*4*5 console.log(arr === newArr); // 輸出 false console.log(arr); // 輸出 [1, 2, 3, 4, 5] console.log(newArr); // 輸出 1*2*3*4*5

14、Array.splice(開始位置(必須), 洗掉個數(必須), 新元素...(可選))
回傳值:一個新陣列(洗掉的元素組成的陣列),會改變原陣列,
簡單理解為:對陣列進行增、刪、改,
若當前方法引數只有兩個必須項,沒有新元素,則進行的是洗掉操作,
【舉例:對陣列元素進行增刪改】
【舉例:對陣列元素進行增刪改】 let arr = [1, 2, 3, 4, 5]; console.log(arr); // 輸出 [1, 2, 3, 4, 5] // 在陣列下標為 2 的地方,新增 2 個元素,未進行洗掉操作,回傳 [] let arr1 = arr.splice(2, 0, 7, 8); console.log(arr); // 輸出 [1, 2, 7, 8, 3, 4, 5] console.log(arr1); // [] // 在陣列下標為 2 的地方,洗掉 3 個元素,進行洗掉操作,回傳洗掉的陣列 let arr2 = arr.splice(2, 3) console.log(arr); // 輸出 [1, 2, 4, 5] console.log(arr2); // 輸出 [7, 8, 3] // 在陣列下標為 2 的地方,洗掉 1 個元素,并新增 2 個元素,回傳洗掉的陣列 let arr3 = arr.splice(2, 1, 8, 6); console.log(arr); // 輸出 [1, 2, 8, 6, 5] console.log(arr3); // 輸出 [4]

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/158314.html
標籤:JavaScript
上一篇:標簽物件-自定義屬性-傳值
下一篇:JS高級---原型和原型鏈
