這兩天想羅列出在陣列中較為常用的語法來逐一認識,陣列的語法很多而且有些又很相似,剛學習時真的很容易搞混,所以想藉這個機會來好好整理複習。
使用於移除或新增陣列元素,但要注意它會直接改變原陣列的內容,假如不希望改變原陣列內容要記得換個語法使用。splice()
包含三個參數:
let number = [0, 1, 2, 3, 4, 5]
number.splice(3, 1)
console.log(number) // [0, 1, 2, 4, 5] <-- 3被移除了
number.splice(3, 0, 100)
console.log(number) // [0, 1, 2, 100, 4, 5] <-- 沒有元素被移除並在索引3插入100
可擷取陣列某部份元素成為一個新陣列,要注意它不會改變原陣列,而是新增出一個陣列。slice()
有兩個參數:
const number = [0, 1, 2, 3, 4, 5]
const newNumber = number.slice(2, 4)
console.log(newNumber) // [2, 3] <--結束索引會擷取到該索引的前一位
將字串由指定字串當作分割位置,並以此為據將字串分割成一個陣列:
const number = '0 1 2 3 4 5'
console.log(number.split(' ')) // ['0', '1', '2', '3', '4', '5']
將陣列內所有元素由指定字串合併在一起成為字串,若沒有指定則預設會以逗號進行合併:
const number = [0, 1, 2, 3, 4, 5]
console.log(number.join('')) // '012345'
將陣列進行反轉,需要注意reverse()
也會直接改變原陣列內容:
const number = [0, 1, 2, 3, 4, 5]
number.reverse()
console.log(number) // [5, 4, 3, 2, 1, 0]
判斷陣列裡面是否有包含某個值,如果有就會回傳該值於陣列內的索引,如果沒有便會回傳-1,indexOf()
有兩個參數:
const number = [0, 1, 2, 3, 4, 5]
console.log(number.indexOf(4)) // 4
console.log(number.indexOf(6)) // -1
其實字串也有自己的索引,我們同樣可以運用陣列索引的方式來取出字串中的特定字元(若找不到字元時會回傳underfined
),但要特別注意的是我們只能讀取字元,不能透過這種方法來改變字串內容,如果要改變字串內容還是需要重新指派整個內容。
let str = 'String'
console.log(str[3]) // i
str[3] = 'I'
console.log(str[3]) // i <-- 不會有改變
console.log(str[9]) // underfined