Javascript 有人能把这个匿名函数分解并解释一下吗?

Javascript 有人能把这个匿名函数分解并解释一下吗?,javascript,anonymous-function,Javascript,Anonymous Function,这将打印一个数字数组,其中“n”是其数字根。我想知道如何通过上面给出的函数实现这一点 谢谢你的回答让我们看看 +n-将输入转换为数字 &&-如果+n不是0或NaN不是另一个falsy值,则函数继续,否则返回该falsy值 1e9+-将此数字转换为字符串:100000000 […100000000]-使用新的“扩展”运算符填充数组,数字=>[1,0,0,0,0,0,0,0,0] .map \=>n+=9-将数组中的每个数字替换为n+9,并为下一项将n的值增加为9 因此,对于n=1,最终结果是:[1

这将打印一个数字数组,其中“n”是其数字根。我想知道如何通过上面给出的函数实现这一点

谢谢你的回答

让我们看看

+n-将输入转换为数字

&&-如果+n不是0或NaN不是另一个falsy值,则函数继续,否则返回该falsy值

1e9+-将此数字转换为字符串:100000000

[…100000000]-使用新的“扩展”运算符填充数组,数字=>[1,0,0,0,0,0,0,0,0]

.map \=>n+=9-将数组中的每个数字替换为n+9,并为下一项将n的值增加为9


因此,对于n=1,最终结果是:[10、19、28、37、46、55、64、73、82、91]

您可以一次分解一个步骤,如下所示:

n => +n && [...1e9+''].map(_ => n += 9);

这里让人困惑的是[…1e9+],这是一种利用扩展符号。。。将字符串转换为单个代码点的数组。写数组会更清楚。从{length:10},在这种情况下,您可以使用第二个参数,而不使用map,就像在数组中一样。从{length:10},v,i=>n+9*i+1.

和运算符,扩展运算符和胖箭头语法什么是数字根?尝试将此代码粘贴到数字根中,例如,您有数字523,数字根是1,5+2+3=10,1+0=1。你不断地在它们之间加上数字,直到你得到一个单一的数字。如果你在它们之间加上这些数字数组,你得到的数字根是n
n => +n && [...1e9+''].map(_ => n += 9);

n => +n && [...1000000000+''].map(_ => n += 9);

n => +n && ['1','0','0','0','0','0','0','0','0','0'].map(_ => n += 9);

n => +n && [n += 9,n += 9,n += 9,n += 9,n += 9,n += 9,n += 9,n += 9,n += 9,n += 9];

n => +n && [n+9, n+18, n+27, n+36, n+45, n+54, n+63, n+72, n+81, n+90];