join() 方法末尾的乘数?

Multiplier at the end of join() method?

我是 Javascript 的新手,正在完成一项培训练习。题目是return给定位数的最高结果。

示例:“678”应 return876。

这是我写的代码:

function max(n){  let r  = (""+n).split("")
  r.sort(function(a, b){return b-a});
  let result = r.join("")
return result;
}

我安慰 result 看看它是否做了我需要的,并且会得到 '876' 我认为是正确的但是,会导致测试用例失败并响应 expected '876' to equal 876

我四处搜索并最终找到了一个类似的解决方案,它在 join() 的末尾添加了 *1,如下所示:

let result = r.join("")*1

我无法理解为什么我需要它才能正确 - 有人可以帮助我理解为什么这是必要的吗?

r.join("")*1 将结果强制转换为数字而不是返回字符串。看起来函数的输出正在使用严格相等与预期结果进行比较,这也是一个数字。执行此操作的其他方法包括使用一元加号运算符(即 +r.join(""))、Number 函数和 parseInt.