Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么筛选器从我的数组中删除索引0_Javascript_Arrays_Indexing_Filter - Fatal编程技术网

Javascript 为什么筛选器从我的数组中删除索引0

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"

我只是想确认一些困扰我的事情

我还在学习javascript,今天做了一个挑战。 挑战是删除每2个索引的值

我不得不使用过滤器作为挑战的一部分,并意识到下面代码中的index2不会从原始数组中切掉值“a”返回索引0。因此,我通过在每个索引中添加1(index2+1)来实现它。它是否删除了0,因为filter()总是返回true,而0被视为false?对不起,我知道这可能是一个简单的答案,感谢所有花时间帮助我的人

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以使其通过。谢谢你把这些放在一起。