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