【发布时间】:2021-03-06 02:17:01
【问题描述】:
您好,我正在练习代码大战 kata,但我不明白为什么我不能将 .join 链接到 Math.pow。
以下是说明: https://www.codewars.com/kata/546e2562b03326a88e000020/train/javascript
欢迎。在这个 kata 中,您被要求对数字的每个数字求平方并将它们连接起来。 例如,如果我们通过函数运行 9119,就会出现 811181,因为 92 是 81,而 12 是 1。
这是我的代码:
我已将传入的数字转换为数组,因此我可以使用.map 对其进行迭代并对每个元素进行平方。然后我想将我的地图结果重新组合在一起,但它不起作用......
function squareDigits(num){
const convertNumToArray = Array.from(String(num));
return convertNumToArray.map((num) => {
return Math.pow(num,2).join("")
})
}
这里是测试用例:
Test.assertEquals(squareDigits(9119), 811181);
这是错误:
TypeError: Math.pow(...).join is not a function
at convertNumToArray.map
at Array.map
at squareDigits
at /home/codewarrior/index.js:21:23
at /home/codewarrior/index.js:23:5
at Object.handleError
【问题讨论】:
-
Math.pow()返回一个数字。.join("")必须在.map()的结果上调用 ->.map((num) => /*...*/).join("") -
那么我需要将
.map存储在变量中吗?然后在变量上调用.join?我试过了,还是不行,我再试一次@Andreas
标签: javascript arrays methods scope