Javascript中如何删除数组中指定元素后形成新的数组

例如数组 arr[0]=1 arr[1]=0 arr[2]=11 arr[3]=54 arr[4]=6 arr[5]=0 arr[6]=0将数组中等于0的元素都删除,是素组变成arr[0]=1 arr[1]=11 arr[2]=54 arr[3]=6 ?

window.onload = function () {
    var arr = [1, 0, 11, 54, 6, 0, 0]; ;
    for (var i = arr.length - 1; i > -1; i--) {
        if (arr[i] == 0) {
            arr.splice(i, 1);//参数(删除的元素下标,从该下标起删除几个元素)
        }
    }
    for (var i = 0; i < arr.length; i++) {
        alert(arr[i]);
    }
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
var sourceArray = [1,2,0,0,0,0,6];//原数组对象

var newArray = [];//定义新的空数组对象
for(var i=0;i<sourceArray.length;i++){
if(sourceArray[i] != 0){//过滤要去除的数组内容
newArray.push(sourceArray[i]);//填充到新数组对象中
}
}
alert(newArray);//显示结果本回答被提问者和网友采纳
第2个回答  推荐于2016-02-15
定义和用法

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

注释:该方法会改变原始数组。

语法
arrayObject.splice(index,howmany,item1,.....,itemX)

具体参考:http://www.w3school.com.cn/jsref/jsref_splice.asp
第3个回答  2013-07-10
var arr1=[1,2,0,4,0,6,7,0,9];
var arr2=[];
function deleteZero(arr){
for(var i=0,len=arr.length;i<len;i++){
if(arr[i]!=0){
arr2.push(arr[i])
}
}
return arr2;
}
deleteZero(arr1) //返回[1, 2, 4, 6, 7, 9]

第4个回答  2013-07-10
建议新建一个数组,将原数组中非零值赋给新数组,这样新数组就是你想要的了
相似回答