Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 如何在数组中查找素数?_Javascript_Arrays - Fatal编程技术网

Javascript 如何在数组中查找素数?

Javascript 如何在数组中查找素数?,javascript,arrays,Javascript,Arrays,我的目标是找到素数: 设arr=[2,3,4,6,9,10,11,15]; 设ret=[]; arr.filterz,ind=>{ 如果ind>0{ ret.everyx=>{ !Number.isIntegerz/x?ret.pushz:false; }; }否则{ ret.pushz; } }; console.logret;//应该是:[2,3,11]修复了您的代码: 设arr=[2,3,4,6,9,10,11,15] 设ret=[]; arr.filterz,ind=>{ i发现>0

我的目标是找到素数:

设arr=[2,3,4,6,9,10,11,15]; 设ret=[]; arr.filterz,ind=>{ 如果ind>0{ ret.everyx=>{ !Number.isIntegerz/x?ret.pushz:false; }; }否则{ ret.pushz; } }; console.logret;//应该是:[2,3,11]修复了您的代码:

设arr=[2,3,4,6,9,10,11,15] 设ret=[]; arr.filterz,ind=>{ i发现>0{ ifret.every x=>!Number.isIntegerz/x{ 普什网 } }else{ret.pushz} } console.logretArray.filter方法返回一个数组,因此无需通过将元素推送到外部数组来生成数组

使用for循环,基本检查更容易。检查如果除以2到其大小的一半之间的所有数字,则该数字不会生成整数。我们需要对半检查,因为每一个大于我们正在检查的数字一半的数字都会产生一个小于2的结果,2是一个数字的最小整数除数

常数arr=[2,3,4,6,9,10,11,15]; 常量isPrime=num=>{ ifnum<4返回true;//1、2、3是素数 const div=Math.floornum/2;//用作分隔符的最大数
forlet i=2;i如果你在筛选器的任何一个块内都没有返回任何内容,那么你试图使用筛选器做什么?因此它只对2有效。@当然性能他似乎使用筛选器遍历数组。我认为最好使用forEach。是的,我只是尝试遍历代码,直到出现这个问题之前,我没有意识到“顺便说一句,filter和其他东西会有这样的区别。最里面的每一个在开始时都是一个filter,boy做了这件事让我花了一段时间才弄明白。你应该用forEach替换filter,因为它只用于遍历数组。@JennyO'Reilly是的,我同意。虽然如果你的意图是正确的,这里也没有其他东西可以纠正。”是要从列表中找到素数,但是,我只是想对OP的代码进行最小的更改并使其正常工作。@RahulDwivedi您还需要做哪些更改?例如,当您检查ifind>0…else ret.push时,您假设在第0个索引处会有2个。那么为什么不将其放入“ret”是从一开始就开始的吗?与3类似。除上述建议外,还应使用map或forEach。