怎样删除js数组中的undefined?

在使用一个js数组的时候有时候会出现一个undefined怎么把这项删除?... 在使用一个js数组的时候 有时候会出现一个undefined 怎么把这项删除? 展开
 我来答
做一个快乐的茶农
高粉答主

2019-06-30 · 每个回答都超有意思的
知道答主
回答量:1396
采纳率:100%
帮助的人:35.2万
展开全部

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方法在删除数组元素的同时,还可以新增入数组元素。

woshidaniel
推荐于2016-02-14 · TA获得超过9240个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:954万
展开全部

思路

方法一:如果数组中的元素有意义的是非零或者非空,则可以根据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]);
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-11
展开全部
读取数据的时候判断是否为undefined 然后过滤掉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
瑞夜卉pS
推荐于2018-03-02 · TA获得超过351个赞
知道小有建树答主
回答量:408
采纳率:73%
帮助的人:49.8万
展开全部
读取数据的时候判断是否为undefined 然后过滤掉
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a63cc06
2019-05-02
知道答主
回答量:6
采纳率:0%
帮助的人:2.4万
展开全部
fn = function (item){return item}
arr.filter(fn)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式