【发布时间】: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