Javascript 为什么筛选器从我的数组中删除索引0
我只是想确认一些困扰我的事情 我还在学习javascript,今天做了一个挑战。 挑战是删除每2个索引的值 我不得不使用过滤器作为挑战的一部分,并意识到下面代码中的index2不会从原始数组中切掉值“a”返回索引0。因此,我通过在每个索引中添加1(index2+1)来实现它。它是否删除了0,因为filter()总是返回true,而0被视为false?对不起,我知道这可能是一个简单的答案,感谢所有花时间帮助我的人Javascript 为什么筛选器从我的数组中删除索引0,javascript,arrays,indexing,filter,Javascript,Arrays,Indexing,Filter,我只是想确认一些困扰我的事情 我还在学习javascript,今天做了一个挑战。 挑战是删除每2个索引的值 我不得不使用过滤器作为挑战的一部分,并意识到下面代码中的index2不会从原始数组中切掉值“a”返回索引0。因此,我通过在每个索引中添加1(index2+1)来实现它。它是否删除了0,因为filter()总是返回true,而0被视为false?对不起,我知道这可能是一个简单的答案,感谢所有花时间帮助我的人 const nums = ["a", "b"
const nums = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"];
const index = 3;
const extractEachKth=(nums, index)=>nums.filter((item,index2)=>(index2 +1)%index!==0)
expected result ["a", "b", "d", "e", "g", "h", "j"]```
此语句错误,
filter()始终返回true
。相反,filter会让这些值通过我们返回true的过滤器。在您的情况下,如果(index2+1)%index,则返回true==0
当index2==0时,(index2+1)%index==0
=>(0+1)%3!==0
=>1!==0
这是正确的。因此,它允许数组中的第0项通过过滤器
以前,当你不向index2添加+1时
当index2==0时,
index2%索引==0
=>0%3!==0
=>0!==0
这是错误的。因此,它过滤了第0个项目,而您没有得到该项目。您可以查看想要的索引,添加一个索引,然后将想要的k
的剩余索引取为三个
结果是1、2(两者都是)或零(这是)
如果将该值转换为布尔值,则得到1和2的true
,以及0的false
const
nums=[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”],
//01 3 4 5 6 7通缉指数
//12345678910所有指数+1
//1 2 0 1 2 0 1 2 0 1总和%3
//******接受这个真实的价值观
extractEachKth=(nums,k)=>nums.filter(((uu,index)=>(index+1)%k);
log(…extractEachKth(nums,3));[“a”、“b”、“d”、“e”、“g”、“h”、“j”]
好的,谢谢,我想我明白了。因此,基本上因为0在过滤条件中为false,所以它不会在索引上返回0,除非我添加+1,这将使其为true?是的。你是对的。谢谢你的帮助,真的很感激。这真的很有帮助,因为我一直在尝试做类似的事情,它确认它会将1添加到0以使其通过。谢谢你把这些放在一起。