你能在curried的箭头函数表达式中实现while循环吗? 我希望能够将while循环表达为表达式。
var arr = [1,2,3,4,5,6];
var len = arr.length;
const iter = i => while(() => (console.log(i), ()=>i--);
iter(len);
答案 0 :(得分:4)
不。没有块的箭头函数必须是表达式,而循环不是(它们是语句)。你可能会喜欢
function whileExp(check,callback){
while(typeof check=="function"?check():check){
if(callback) callback();
}
}
(counter=>whileExp(()=>--counter,()=>alert(counter)))(10);
但是我不知道为什么这应该有用
答案 1 :(得分:2)
您缺少数组声明的名称,我不知道while循环的这种语法,但下面的语法工作正常
var arr = [1,2,3,4,5,6];
var len = arr.length;
const iter = i => {while(i > 0){console.log(i); i--;}};
iter(len);

答案 2 :(得分:1)
您可以使用Array.prototype.reduceRight()
,逗号运算符
const arr = [1,2,3,4,5,6];
const iter = (a, b) => (console.log(a), b);
arr.reduceRight(iter);