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
.
我是 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
.