我有以下我一直在开发的代码,一个备用while
循环:
_while = (cond, act) => cond && act() & _while(cond, act)
在这种情况下act()
,旨在改变cond
每次迭代的最终结果,直到cond
被评估为false
,然后循环意味着结束......
我试图通过使用我的代码单步执行字符串来确定字符串的长度来对此进行测试。结果,我的代码如下:
len = 0; _while(!!("qwerty")[len], ()=>++len);
现在,我的想法是,这段代码基本上会逐步执行并测试字符串中每个字符的存在,递增len
直到它尝试"qwe"[6]
which is undefined
,并将返回的值!!
呈现为,退出循环,值等于...undefined
false
len
6
但是,我什至没有走那么远......由于某种原因,这个循环继续进行,并放弃了一个错误InternalError: too much recursion
谁能看到我的代码做错了什么?我想保留我可以保留的原始代码,而不必求助于本机for
或while
循环......