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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]);
    

参考技术A 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);//显示结果本回答被提问者和网友采纳
参考技术B 定义和用法

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

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

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

具体参考:http://www.w3school.com.cn/jsref/jsref_splice.asp
参考技术C 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]

参考技术D 建议新建一个数组,将原数组中非零值赋给新数组,这样新数组就是你想要的了

删除数组中指定的某个元素

/**
 * 删除数组中指定的某个元素
 */
function removeByValue(arr, val) {
  for(var i=0; i<arr.length; i++) {
    if(arr[i] == val) {
      arr.splice(i, 1);
      break;
    }
  }
}
var somearray = ["mon", "tue", "wed", "thur"]
removeByValue(somearray, "tue");
console.log(somearray)

  

以上是关于Javascript中如何删除数组中指定元素后形成新的数组的主要内容,如果未能解决你的问题,请参考以下文章

从数组中删除一个元素,在Javascript中指定一个值

js数组操作(添加、删除、替换元素)

java 如何找到数组中指定的元素的下标

Python如何删除numpy数组中指定值的元素

js json中如何删除指定元素

删除数组中指定的某个对象