Array.prototype.fill()
// fill(value)
// fill(value, start)
// fill(value, start, end)
// 在array中填入數值,是初始化array的幫手
const array = [1, "2", "34"]
console.log(array.fill(5, 2, 5)) // 超出array範圍則不填
console.log(array.fill(6, 0)) // 從index 0開始填到最後
console.log(array.fill(7, 1, 2)) // 從index 1開始填到2之前 => 只填一個
const empty_array = []
console.log(empty_array.fill(8,0,8)) // 不會更動超出array範圍
Array.prototype.filter()
// filter(callbackFn)
// filter(callbackFn, thisArg)
// 給定一個function,filter()會依照function內容回傳測試array中的每個element
// 類似昨天學到的every()的語法,但filter()會把測試通過的element組成一個新array回傳
let array2 = [0, 1, "2", 3, 4, "5", 6, 7, 8, 9]
function isNumber(item) {
if (typeof(item) === "number") return true;
else return false;
}
const result = array2.filter(isNumber)
console.log(result)
找東西可以用的 methods
Array.prototype.find() / findIndex() / findLast() findLastIndex()
// find() return 第一個符合條件的 element
// findIndex() return 第一個符合條件的 element 在哪個 index
let array2 = [0, 1, "2", 3, 4, "5", 6, 7, 8, 9]
console.log(array2.find((x) => typeof(x) === "string")) // "2"
console.log(array2.findIndex((x) => typeof(x) === "string")) // 2
function greaterThan10(x) {
return x > 10
}
console.log(array2.find(greaterThan10)) // 找不到的話 回傳undefined
console.log(array2.findIndex(greaterThan10)) // 找不到的話 回傳index -1
// findLast() return 最後一個符合條件的 element
// findLastIndex() return 最後一個符合條件的 element 在哪個 index
console.log(array2.findLast((x) => typeof(x) === "number")) // 9
console.log(array2.findLastIndex((x) => typeof(x) === "number")) // 9
Array.prototype.indexOf() / lastIndexOf()
// indexOf(searchElement)
// indexOf(searchElement, fromIndex)
// ^^^^^^^^^ 從哪裡開始往後看
// 找某個值在array的第一次出現在哪個index
const array = [0, 1, 4, 1, 2, 6, 5, 3]
console.log(array.indexOf(1)) // 1
console.log(array.indexOf(1, 3)) // 3
console.log(array.indexOf(1, 4)) // -1
// lastIndexOf(searchElement)
// lastIndexOf(searchElement, fromIndex)
// ^^^^^^^^^ 從哪裡開始往前看
// 找某個值在array的最後一次出現在哪個index
console.log(array.lastIndexOf(1)) // 3
console.log(array.lastIndexOf(1, 0)) // -1
console.log(array.lastIndexOf(1, 3)) // 3
console.log(array.lastIndexOf(1, 4)) // 3
Array.prototype.includes()
// includes(searchElement)
// includes(searchElement, fromIndex)
// ^^^^^^^^^ 從哪裡開始往後看
// 找array中是否包含某個值
const array = [0, 1, 4, 1, 2, 6, 5, 3]
console.log(array.includes(4)) // true
console.log(array.includes("4")) // false
console.log(array.includes(4, 3)) // false
Array.prototype.some()
// 給定一個function,找array中是否有任一個帶入function回傳true的值
function greaterThan10(x) {
return x > 10
}
function greaterThan50(x) {
return x > 50
}
const array = [11, 5, 3, 29, 10, 13]
console.log(array.some(greaterThan10)) // true
console.log(array.some(greaterThan50)) // false
雖然這樣像翻字典一般學習方法很爛,但它的確讓我多練習一些JS的基本功,明天繼續加油!