怎样删除js数组中的undefined?
6个回答
展开全部
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方法在删除数组元素的同时,还可以新增入数组元素。
展开全部
思路
方法一:如果数组中的元素有意义的是非零或者非空,则可以根据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 然后过滤掉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
读取数据的时候判断是否为undefined 然后过滤掉
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fn = function (item){return item}
arr.filter(fn)
arr.filter(fn)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询