【问题标题】:How is the spread syntax used here to turn a number to a string array?这里如何使用扩展语法将数字转换为字符串数组?
【发布时间】:2018-06-05 12:42:54
【问题描述】:

我试图解决一个编码网站上的挑战,我发现这是应对该挑战的最佳解决方案。

谁能详细说明为什么这段代码:[...a%10+''+a]

返回以下数组:["2", "1", "1", "2", "2"]

幕后实际发生了什么?

附:我知道这可能不是最佳做法,但我仍在学习,这似乎真的很有趣。

【问题讨论】:

  • a 的值是多少?它是从哪里来的?
  • @CRice a 必须是 1122'1122'
  • a 是一个数字。正如@Paulpro 所说,它是 1122。

标签: javascript arrays ecmascript-6 numbers spread-syntax


【解决方案1】:

假设a的原始值为1122

  1. a%10 返回a 的最后一位,即2
  2. +'' 将其从数字转换为字符串,"2"
  3. +a 连接 a 的完整值,得到 "21122"
  4. 将其放入[...] 会将字符串展开为其字符数组。

以下是所有步骤的代码:

const a = 1122;
const lastDigit = a % 10;
const lastDigitStr = lastDigit + '';
const newStr = lastDigitStr + a;
const result = [...newStr];
console.dir(result);

【讨论】:

  • 啊,归结为执行顺序。谢谢你们让我意识到这一点。
猜你喜欢
  • 2017-12-07
  • 1970-01-01
  • 2021-12-13
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 2017-11-27
相关资源
最近更新 更多