JS Array 系列最後一篇了
Array.prototype.join()
// join() 可以把 array中的element用comma串接成一個字串
// join(separator) 也可以替換成其他separator
const elements = [1, 2, 3]
console.log(elements.join()) // > "1,2,3"
console.log(elements.join('')) // > "123"
console.log(elements.join('-')) // > "1-2-3"
Array.prototype.reverse() / toReversed()
const elements = [1, 2, 3]
console.log(elements) // [1, 2, 3]
console.log(elements.reverse()) // [3, 2, 1]
console.log(elements) // [3, 2, 1]
// ** reverse() 會改變array原本的狀態
const array = [1, 2, 3]
console.log(array)
console.log(array.toReversed())
console.log(array)
// ** 要用 toReversed() 才會維持原狀態
Array.prototype.shift() / unshift()
// shift() 移除array最前方的element、回傳被移除的element
const arr = [1, 2, 3]
beRemoved = arr.shift()
console.log(beRemoved) // 1
console.log(arr) // [2, 3]
// unshift() 在array最前方加入傳入 element
let array = [1, 2, 3]
array.unshift()
console.log(array) // [1, 2, 3]
array.unshift(-1, 0) // 呼叫就會改變array原始狀態
console.log(array) // [-1, 0, 1, 2, 3]
array.unshift([-3, -2]) // 呼叫就會改變array原始狀態
console.log(array) // [[-3, -2], -1, 0, 1, 2, 3]
Array.prototype.slice()
// slice()
// slice(start)
// slice(start, end)
const array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(array.slice()) // 沒切
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(array.slice(3)) // 從index = 3之前切一刀
// [3, 4, 5, 6, 7, 8, 9]
****
console.log(array.slice(3, 7)) // 從index = 3之前切一刀,index = 7之前切一刀
// [3, 4, 5, 6]
console.log(array.slice(-3)) // 從index = -3 之前切一刀, index -3 為 index 7
// [7, 8 ,9]
console.log(array.slice(-3, -1)) // 從index = -3之前切一刀,index = -1之前切一刀
// [7, 8]
console.log(array.slice(2, -3)) // 從index = 2之前切一刀,index = -3之前切一刀
// [2, 3, 4, 5, 6]
Array.prototype.sort() / toSorted()
// 比較 UTF-16 編碼排序
// sort() 直接操作array內容,toSorted則不會改變原本內容
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// Expected output: Array ["Dec", "Feb", "Jan", "March"]
const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// Expected output: Array [1, 100000, 21, 30, 4]