Javascript 带胖箭头的素数数组过滤

Javascript 带胖箭头的素数数组过滤,javascript,reactjs,Javascript,Reactjs,学习如何结合脂肪箭头写一些巧妙的数组过滤 const newArray = [1, 3, 2, 5, 10]; const isPrime = num => { for (let i = 2; i < num; i++) { if (num % i === 0) return false; } return num !== 1; }; const myPrimeArray = newArray.filter(element => isPrime(elem

学习如何结合脂肪箭头写一些巧妙的数组过滤

const newArray = [1, 3, 2, 5, 10];
const isPrime = num => {
  for (let i = 2; i < num; i++) {
    if (num % i === 0) return false;
  }
  return num !== 1;
};


const myPrimeArray = newArray.filter(element => isPrime(element));
console.log(myPrimeArray);
constnewarray=[1,3,2,5,10];
常量isPrime=num=>{
for(设i=2;iisPrime(element));
log(myPrimeArray);

是否有办法将函数isPrime合并到胖箭头中。内联筛选?

只需将
isPrime
的主体复制并粘贴到
筛选
回调中:

constnewarray=[1,3,2,5,10];
常量myPrimeArray=newArray.filter(num=>{
for(设i=2;ilog(myPrimeArray)只需在
过滤器的回调中移动函数
isPrime
constnewarray=[1,3,2,5,10];
常量myPrimeArray=newArray.filter(num=>{
for(设i=2;i只需传递函数引用,而不是在
filter()中的匿名函数中调用它。


无论是否编写为箭头函数,最终结果仍然是它只是一个函数对象

过滤器函数接受箭头函数,或fat arrow函数(如果愿意):

const myPrimeArray = newArray.filter(isPrime);
工作示例:

constnewarray=[1,3,2,5,10];
常量isPrime=num=>{
for(设i=2;i
constnewarray=[1,3,2,5,10];
常量myPrimeArray=newArray.filter(元素=>{
for(设i=2;ilog(myPrimeArray)您可以使用函数式编程中经常使用的无点表示法,并省略参数。不要给出一个带参数的箭头函数并用该参数调用
isPrime
函数,只需传递
isPrime
函数:

arg=>isPrime(arg)
相当于
isPrime
,因此您可以执行以下操作:

const myPrimeArray = newArray.filter(isPrime);
或者,您可以在使用箭头函数的位置将其定义为筛选器调用的参数。但是,此代码的可读性和可重用性不如您定义的
isPrime
函数

constnewarray=[1,3,2,5,10];
常量myPrimeArray=newArray.filter(num=>{
for(设i=2;ilog(myPrimeArray)还不完全清楚(从答案中可以看出),您是想删除对
isPrime
的引用,以便只在
.filter
中定义该函数,还是想删除
isPrime(element)
.filter
中的手动调用?您的代码仍然很好<代码>iPrime
是一个可重用的函数。您可能会将其移动到一个单独的
utils
模块,并在需要时将其导入到任何地方。对该代码的任何更改都将是微不足道的,并且可能会使其难以阅读。
const myPrimeArray = newArray.filter(isPrime);