使用forEach遍历splice删除数组中元素删不全的问题

var arr = [['1'],null,null,[]]
arr.forEach((item,index)=>{
        if (!item||item.length==0) {
            arr.splice(index,1)
 		}
 })

数组是上面这样的,利用forEach删除后得到的却是

arr = [['1'],null]

按照我们的想法应该arr只剩下[‘1’]这一个子元素,可能是forEach删除后会导致数组下标重置导致的问题吧
所以,这里使用filter会更合适一些

arr = arr.filter(function(item){
        return item&&item.length!=0
})

这样,我们得到的就是想要的结果arr=[[‘1’]]了,可以根据自己的情况设置验证。

猜你喜欢

转载自blog.csdn.net/weixin_45685252/article/details/107492949
今日推荐