怎样删除js数组中的undefined?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样删除js数组中的undefined?相关的知识,希望对你有一定的参考价值。

在使用一个js数组的时候 有时候会出现一个undefined 怎么把这项删除?

1、若要删除其中的'b',有两种方法:delete方法:delete,这种方式数组长度不变,此时arr[1]变为fined了。

2、但是也有好处原来数组的索引也保持不变,此时要遍历数组元素可以才用。

3、这种遍历方式跳过其中undefined的元素,该方式IE4.o以后都支持了。

4、数组对象splice方法:arr.splice(1,1);这种方式数组长度相应改变,但是原来的数组索引也相应改变。

5、splice参数中第一个1,是删除的起始索引(从0算起),在此是数组第二个元素。

6、第二个1,是删除元素的个数,在此只删除一个元素,即'b';此时遍历数组元素可以用普通遍历数组的方式,比如for,因为删除的元素在数组中并不保留

7、该方法IE5.5以后才支持,值得一提的是splice方法在删除数组元素的同时,还可以新增入数组元素。

参考技术A

思路

方法一:如果数组中的元素有意义的是非零或者非空,则可以根据if(!a[i])的方式进行判断

方法二:比较通用的判断undefined是使用typeof的方式,判断是不是等于字符串undefined

代码

var a=[];
a[5]=7;
var b = [];//去除undefined后的结果
for(var i=0;i<a.length;i++)
    if(typeof(a[i])!='undefined')
        b.push(a[i]);
    

参考技术B 读取数据的时候判断是否为undefined 然后过滤掉 参考技术C 读取数据的时候判断是否为undefined 然后过滤掉 参考技术D fn = function (item)return item
arr.filter(fn)

js删除数组中的元素

js删除数组中的元素delete和splice的区别

例如有一个数组是 :var textArr = [‘a‘,‘b‘,‘c‘,‘d‘];

这时我想删除这个数组中的b元素:

方法一:delete 删除数组

delete textArr[1] 结果为: ["a",undefined,"c","d"]

只是被删除的元素变成了 undefined 其他的元素的键值还是不变。

方法二:aplice 删除数组

splice(index,len,[item]) 注释:该方法会改变原始数组。

index:数组开始下标 len: 替换/删除的长度 item:替换的值,删除操作的话 item为空

textArr.splice(1,1); 结果为:["a","c","d"] 直接删除了数组 改变了数组的值。

 

 

以上是关于怎样删除js数组中的undefined?的主要内容,如果未能解决你的问题,请参考以下文章

js删除数组中的元素

js删除数组中的元素delete和splice的区别

js删除数组中的元素delete和splice的区别

js找数组中元素5种方式

js数组元素怎样删除最后一个元素

js,求大神指导 怎么删除数组型json里不符合条件的元素