js遍历数组对空位的处理

实际情况中,有一种情况是定义了数组,但是还未给数组赋值的情况,这种情况就会形成数组位上的空值

let array = new Array(4);
array
// (4) [空属性 × 4]

这里的array就是初始化的长度为4的数组,但是我们还未给数组的属性赋值,所以它时包含4个空值的数组

下面对空位进行处理

先来了解一下,在数组的遍历过中,
filter,map,forEach,some,every,reduce方法都会跳过空值的处理

let array = new Array(4)
array [1] = 1
array [3] = 3
array // (4) [空白, 1, 空白, 3]
array.filter(item => {
    debugger
    item //只有1和3,空值会跳过
})
array.map(item => {
    debugger
    item //只有1和3,空值会跳过
})
array.forEach(item => {
    debugger
    item //只有1和3,空值会跳过
})
array.reduce((list, cur, index) => {
    debugger
    cur //只有1和3,空值会跳过
}, [])
array.every(item => {
    debugger
    return item //只有1和3,空值会跳过
})
array.some(item => {
    debugger
    return item < 0 //只有1和3,空值会跳过
})

在上面的代码运行中,可以看到上述几个数组处理方法会跳过对空值的处理,需要注意的是,我们在使用map的时候,因为map最终会生成一个与原数组长度相同的新数组,由于map并未对空值进行处理,所以,在新生成的数组中空位会被保留.

如果处理数组的空位呢,比如赋值或者删除

先看过滤

array.filter(item => true) // [1,3]

由于上述的遍历方法都会跳过空值处理,所以,如果我们要想处理空值,只能使用for循环

for(let i=0; i<array.length; i++){
    array[i] = array[i] ? array[i] : 0
}
array
//(4) [0, 1, 0, 3]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值