function delRepeat(arr){
var len = arr.length;
for(var i=len-1;i>=1;i--)
{
if(arr[i-1] == arr[i])
{
arr.splice(i,1);//splice()方法的應用
}
}
//return arr;
}
Array.prototype.delRepeat=function()
{
var tmpArr=[],rs=[],i,val;
for(i=this.length;i>0;i--)
{
val = this[i-1];
if(!tmpArr[val])
{
tmpArr[val]=1;
}else
{
rs.push(val);
this.splice(i-1,1);
}
}
tmpArr = null;
return rs;
}
兩個優點:
1、預先將this[i-1]保存在變量val中,減少訪問次數。
2、使用array.push方法,替換用變量保存數組長度的辦法。
JavaScript splice() 方法
返回 JavaScript Array 對象參考手冊
定義和用法
splice() 方法用于插入、刪除或替換數組的元素。

語法
arrayObject.splice(index,howmany,element1,
..,elementX)參數 描述
index 必需。規定從何處添加/刪除元素。

該參數是開始插入和(或)刪除的數組元素的下標,必須是數字。
howmany 必需。規定應該刪除多少元素。必須是數字,但可以是 "0"。

如果未規定此參數,則刪除從 index 開始到原數組結尾的所有元素。
element1 可選。規定要添加到數組的新元素。從 index 所指的下標處開始插入。
elementX 可選。可向數組添加若干元素。

返回值
如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數組。

說明
splice() 方法可刪除從 index 處開始的零個或多個元素,并且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。
提示和注釋
注釋:請注意,splice() 方法與 slice() 方法的作用是不同的,splice() 方法會直接對數組進行修改。
實例
例子 1
在本例中,我們將創建一個新數組,并向其添加一個元素:

<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 />")
arr.splice(2,0,"William")
document.write(arr + "<br />")

</script>輸出:

George,John,Thomas,James,Adrew,Martin
George,John,William,Thomas,James,Adrew,Martin例子 2
在本例中我們將刪除位于 index 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 />")
arr.splice(2,1,"William")
document.write(arr)

</script>輸出:

George,John,Thomas,James,Adrew,MartinGeorge,John,William,James,Adrew,Martin例子 3
在本例中我們將刪除從 index 2 ("Thomas") 開始的三個元素,并添加一個新元素 ("William") 來替代被刪除的元素:

<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 />")
arr.splice(2,3,"William")
document.write(arr)

</script>輸出:

George,John,Thomas,James,Adrew,MartinGeorge,John,William,MartinTIY
splice()
如何使用 splice() 來更改數組。