javascript中的slice()方法


JavaScript中的Array對象提供了一個slice()方法,用於從已有的數組中返回選定的元素。

arrayObject.slice(start,end)
參數 描述
start 必需。規定從何處開始選取。如果是負數,那么它規定從數組尾部開始算起的位置。也就是說,-1 指最后一個元素,-2 指倒數第二個元素,以此類推。
end 可選。規定從何處結束選取。該參數是數組片斷結束處的數組下標。如果沒有指定該參數,那么切分的數組包含從 start 到數組結束的所有元素。如果這個參數是負數,那么它規定的是從數組尾部開始算起的元素。

該函數會返回一個新的數組(非變異方法,不改變源數組),包含從start到end(不包含該元素)的arrayObject中的元素。因此要特別注意,如果是想要刪除數組中的一段元素,應該使用Array.splice()方法。

var arr = ['yanggb', 'yanggb1', 'yanggb2'];

console.log(arr.slice(1)); // ['yanggb1', 'yanggb2']
console.log(arr.slice(2)); // ['yanggb2']
console.log(arr.slice(1, 2)); // ['yanggb1']

console.log(arr.slice(-1)); // ['yanggb2'] console.log(arr.slice(-2)); // ['yanggb1', 'yanggb2'] console.log(arr.slice(-2, -1)); // ['yanggb1'] console.log(arr); // ['yanggb', 'yanggb1', 'yanggb2']

注意到了嗎,在多次對源數組進行slice()操作,在最后源數組並沒有發生任何的改變。

另外,JavaScript中的String對象也提供了slice()方法,用於提取字符串的某個部分,並以新的字符串返回被提取的部分,使用起來和Array對象的slice()方法大同小異。

stringObject.slice(start,end)
參數 描述
start 要抽取的片斷的起始下標。如果是負數,則該參數規定的是從字符串的尾部開始算起的位置。也就是說,-1 指字符串的最后一個字符,-2 指倒數第二個字符,以此類推。
end 緊接着要抽取的片段的結尾的下標。若未指定此參數,則要提取的子串包括 start 到原字符串結尾的字符串。如果該參數是負數,那么它規定的是從字符串的尾部開始算起的位置。

此函數會返回一個新的字符串,包括字符串stringObject從start開始(包括start)到end結束(不包括end)為止的所有字符。

String對象的方法slice()、substring()和substr() (不建議使用)都可返回字符串的指定部分。slice() 比 substring() 要靈活一些,因為它允許使用負數作為參數。slice() 與 substr() 有所不同,因為它用兩個字符的位置來指定子串,而substr() 則用字符位置和長度來指定子串。

var str = 'yanggb';

console.log(str.slice(1)); // 'anggb'
console.log(str.slice(2)); // 'nggb'
console.log(str.slice(1, 2)); // 'a'

console.log(str.slice(-1)); // 'b'
console.log(str.slice(-2)); // 'g'
console.log(str.slice(-2, -1)); // 'g'

console.log(str); // 'yanggb'

同樣注意的是,在多次對源字符串進行slice()操作,在最后源字符串並沒有發生任何的改變。這也與String對象本身就是被設計為不可變性的特性有一點關系。

 

"那個總是對你和顏悅色的人,也可能是伺機而動的壞人。"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM