删除数组中的某一个元素

作者:zccst

 

首先定义一个数组如果

var a = [1,2,3,4,5];

比如要求删除第一个元素,即期望删除后变成[1,3,4,5],当然要求不使用系统函数

delete a[1];  //不符合需求 [1, undefined, 3, 4, 5]

a[1] = null;  //不符合需求 [1, null, 3, 4, 5]


a.splice(1,1); //不符合需求,能达到效果,但使用了系统函数

既然是学习,顺便温习一下splice的用法,splice有三个参数,前两个是必须的a.splice( position, howmany, replaceItem1, ..., replaceitemX);

position:      必须。表示起始位置

wantDelNum:必须。要删除的项目数量。如果设置为 0,则不会删除项目

replaceItem1:可选。向数组添加的新项目

例如:a.splice(1,1);表示从位置1开始,删掉1个元素,并且不填充新元素。

 

靠谱的实现方法一:

var a = [1,2,3,4,5];
//delete a[1];
//a[1] = null;
//a.splice(1,1);

function mySplice(arr, index){
    if(index >= 0 && index<arr.length){
        for(var i = index; i < arr.length; i++){
            arr[i] = arr[i+1];
        }
        arr.length = arr.length-1;
    }
    return arr;
}

console.log(mySplice(a,1));

 

靠谱的实现方法二:

 

posted @ 2014-05-30 17:50  走走停停走走  Views(4417)  Comments(0Edit  收藏  举报