我只是想确认一下困扰我的事情。
我仍在学习javascript,今天遇到了挑战。面临的挑战是删除每个第二个索引的值。
我不得不使用过滤器作为挑战的一部分,并且意识到以下代码中的index2不会从原始数组中截取值“ a”返回索引0。因此,我通过将每个索引(索引2 +1)加1来使其工作。是否因为filter()始终返回true且将0视为false而删除了0?抱歉,我知道这可能是一个简单的答案,也感谢任何花时间帮助我的人。
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() always returns true
。相反,过滤器将使这些值通过我们要返回true的过滤器。在您的情况下,如果返回true (index2 +1)%index!==0
。
当index2 == 0时,(index2 +1)%index!==0
=> (0+1)%3 !== 0
=>1 !== 0
这是正确的。因此,它允许数组中的第0个项目通过过滤器。
在您不为索引2添加+1之前,
当index2 == 0时,index2%index!==0
=> 0%3 !== 0
=>0!== 0
这是错误的。因此,它过滤了第0个项目,但您没有得到该项目。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句