您好,我正在练习代码战争型,我不明白为什么我不能链接.join到Math.pow.以下是说明: https://www.codewars.com/kata/546e2562b03326a88e000020/train/javascript欢迎。在此型中,要求您对数字的每一位数字进行平方并将它们连接起来。例如,如果我们通过函数运行 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
2 回答
MMMHUHU
TA贡献1834条经验 获得超8个赞
您需要应用于, notArray.join
的结果,它不返回数组。使用 ES6 箭头函数,您可以将其写在一行中:Array.map
Math.pow
const squareDigits = (num) =>
Array
.from(String(num))
.map((digit) => Math.pow(digit, 2))
.join('');
console.log(squareDigits(9119));
console.log(squareDigits(573));
慕侠2389804
TA贡献1719条经验 获得超6个赞
这是答案
function squareDigits(num){ return Number(String(num).split('').map((c)=>c*c).join('')) }
添加回答
举报
0/150
提交
取消