slice() 定義和用法
slice() 方法可從已有的數組中返回選定的元素。
string.slice(start, end)提取一個字符串
string.substring(start, end)提取一個字符串,end不支持負數
string.substr(start, len)提取一個長度爲len的字符串
1、slice和substring接收的是起始位置和結束位置(不包括結束位置),而substr接收的則是起始位置和所要返回的字符串長度。直接看下面例子:
var test = 'hello world';
alert(test.slice(4,7)); //o w
alert(test.substring(4,7)); //o w
alert(test.substr(4,7)); //o world
2、substring是以兩個參數中較小一個作爲起始位置,較大的參數作爲結束位置。如:
alert(test.substring(7,4)); //o w
3、當接收的參數是負數時,slice會將它字符串的長度與對應的負數相加,結果作爲參數;substr則僅僅是將第一個參數與字符串長度相加後的結果作爲第一個參數;substring則乾脆將負參數都直接轉換爲0。測試代碼如下:
var test = 'hello world';
alert(test.slice(-3)); //rld
alert(test.substring(-3)); //hello world
alert(test.substr(-3)); //rld
alert(test.slice(3,-4)); //lo w
alert(test.substring(3,-4)); //hel
alert(test.substr(3,-4)); //空字符串
附加說明:
定義和用法
slice() 方法可從已有的數組中返回選定的元素。
語法
arrayObject.slice(start,end)
參數 | 描述 |
start | 必需。規定從何處開始選取。如果是負數,那麼它規定從數組尾部開始算起的位置。也就是說,-1指最後一個元素,-2指倒數第二個元素,以此類推。 |
end | 可選。規定從何處結束選取。該參數是數組片斷結束處的數組下標。如果沒有指定該參數,那麼切分的數組包含從 start 到數組結束的所有元素。如果這個參數是負數,那麼它規定的是從數組尾部開始算起的元素。 |
返回值
返回一個新的數組,包含從 start到 end (不包括該元素)的 arrayObject中的元素。
說明
請注意,該方法並不會修改數組,而是返回一個子數組。如果想刪除數組中的一段元素,應該使用方法 Array.splice()。
提示和註釋
註釋:您可使用負值從數組的尾部選取元素。
註釋:如果 end未被規定,那麼 slice()方法會選取從 start到數組結尾的所有元素。
實例
例子 1
在本例中,我們將創建一個新數組,然後顯示從其中選取的元素:
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr + "<br />")
document.write(arr.slice(1) + "<br />")
document.write(arr)
</script>
輸出:
George,John,Thomas
John,Thomas
George,John,Thomas
例子 2
在本例中,我們將創建一個新數組,然後顯示從其中選取的元素:
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "<br />")
document.write(arr.slice(2,4) + "<br />")
document.write(arr)
</script>
輸出:
George,John,Thomas,James,Adrew,Martin
Thomas,James
George,John,Thomas,James,Adrew,Martin