用splice删除数组元素容易忽略的问题

作者:沙师弟时间:2013-07-30
今天写一个选择框的模拟插件,其中用数组来记录那些被选中,用到了splice删除数组,但是用下标来取值来是不对,而且length的值也会被改变,举个W3SCHOOL的例子:
<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(0,1)
document.write(arr[4])
</script>
其中,我想获取原来数组arr下标是4的值,删掉之后想要的arr[4]="Adrew",但是用splice删除第一个之后,获取的值不是我想要的,数组arr的下标被前移,这就可能在相应的应用上造成不便,我的解决方法是用null来占位,返回的数据在过滤掉null就可以准确的获取那些选中项目。
<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(0,1,null)
document.write(arr[4])

</script>