为了账号安全,请及时绑定邮箱和手机立即绑定

无法将 .join() 方法链接到 Math.pow 上以将数组更改回整数

无法将 .join() 方法链接到 Math.pow 上以将数组更改回整数

慕尼黑8549860 2023-08-24 10:04:04
您好,我正在练习代码战争型,我不明白为什么我不能链接.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.mapMath.pow


const squareDigits = (num) =>

  Array

  .from(String(num))

  .map((digit) => Math.pow(digit, 2))

  .join('');


console.log(squareDigits(9119));

console.log(squareDigits(573));





查看完整回答
反对 回复 2023-08-24
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

这是答案

function squareDigits(num){
  return Number(String(num).split('').map((c)=>c*c).join(''))
}


查看完整回答
反对 回复 2023-08-24
  • 2 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信