【问题标题】:Remove all falsy values from an array in Javascript从Javascript中的数组中删除所有虚假值
【发布时间】:2022-06-28 18:38:47
【问题描述】:

我有一个数组 arr1 = [0,1,false,2,undefined,'',null,3]

预期的结果是删除所有虚假值并返回仅包含真实值的数组 => [1, 2, 3]

但是,我得到了这个 =>[ 1, undefined]

我写的代码是:click this link to see the code

for(let i=1;i<=arr1.length;i++)
{   
 
    if(!arr1[i-1])
    {
        arr1.splice(i-1,i);
    }
}

console.log(arr1);

第 1 行 - 在这里,我循环遍历数组直到数组长度。

第 2 行 - 在这一步,我正在检查错误值。如果值是假的,则进入块内。

第 3 行 - 在这一步,我想使用拼接从数组中删除元素。因为,我已经从索引 1 开始了数组,所以我想从索引 i-1 中删除元素到索引 i。

例如,如果我想从索引为 2 但数组索引指向 3 的数组中删除“假”元素,那么我将它从索引 i-1(即 2)拼接到索引 i(即 3)。然后,该元素将从数组中移除。

第 4 行 - 在控制台中打印数组 arr1。

输出应该是 [1,2,3] 但我得到的是 [1, undefined]

有人可以帮我解决我错的地方吗?我还尝试了过滤方法和布尔构造函数,然后所需的输出就来了。但是,我想知道我的代码哪里出错了。请帮我解决这个问题。

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    您可以像这样将其放入if 中来检查真值/假值。

    const arr1 = [0,1,false,2,undefined,'',null,3];
    let result = [];
    arr1.forEach(o => {
      if (o) result.push(o);
    });
    console.log(result);

    【讨论】:

      猜你喜欢
      • 2015-12-30
      • 2019-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      相关资源
      最近更新 更多