這三個用法真的超級常讓我搞混的!!!
Slice() 切一片(段)下來
Slice 像是擷取一樣,透過slice你可以擷取陣列或字串中的一段,並將那一段複製起來放到新的陣列或字串。
- 擷取需要的東西
- 產生新陣列或字串(淺拷貝)
- 不會更動原本的陣列或字串
- 不一定要有untilIndex,如果沒有就是到最後
slice(fromIndex, untilIndex);
//他會擷取到指定的索引前,也就是若我的untilIndex是3,他不會擷取到索引3的呦!
Splice() 拼接
Splice()的作用是,可以將東西刪除再拼東西上去。
- 直接更動原本的陣列
- 只能在陣列使用
刪除東西
splice(fromIndex, remove number of elements)
splice(2) = 代表從索引2開始的東西都被刪除。(索引2也會被刪)
splice(2,1) = 代表從索引2開始,刪除一項東西。(也就是刪除索引2)
splice(2,3) = 代表從索引2開始,刪除三項東西。(也就是刪除索引2)
拼東西上去
splice(fromIndex, remove number of elements, element, element)
splice(2,1,'a','b') = 代表從索引2開始,刪除一項東西,再拼上後面的東西('a','b')。
Split() 分裂
Split()會將一個字串,依照指定方式分裂成多個小字串,再將其餘集結成一個陣列回傳。
- 只能在字串使用(雖然不能直接使用在陣列上,但是我們可以先把陣列轉為字串(toString)再使用。)
- 回傳的東西要賦予到新的變數上
- 不會更改原本的字串
string.split(separator, limit);
//第一個是指定要怎麼分裂
//第二個是指定要分裂到哪裡
範例:
const str1 = "1,2,3,4,5,6,7"
const str2 = "hello,world"
str1.split(',',3); //return ['1','2','3']
//指定要把有','的地方都分裂開來,並分裂到第三個,然後組成一個陣列回傳。
str2.split('',5); //return ['h','e','l','l','o']
//如果是 '' 表示就是把每個字元都分裂開來