2017-04-07 101 views
0

我想写一个函数,它需要一个多位数字并返回一个包含每个数字平方的结果的数字。为什么我的join()方法不起作用?

我可以成功地将数字转换为字符串并使用地图方法对每个数字进行平方,但是当我尝试将数组连接回单个数字时,它失败了。

这里是我的代码:

function squareDigits(num){ 
    let numArray = num.toString().split("").map(Number); 
    return numArray.map(function(number){ 
    return Math.pow(number, 2).join(''); 
    }); 
} 
squareDigits(52); 

回答

0

Math.pow返回Number,不是一个数组,但Array.prototype.map一样。 join是一种Array.prototype方法。

+0

但是怎么来的,然后如果我删除了。加入()什么是返回是一个数组: [25,4]?我希望结果只是254. –

+0

做你的调用结果连接到'.map' ... –

+0

谢谢,我做了,而它的工作,数字是在一个字符串。我无法将其转换回数字。 –

2

试试这个。您的。加入()错误放置

function squareDigits(num){ 
    let numArray = num.toString().split("").map(Number); 
    return numArray.map(function(number){ 
    return Math.pow(number, 2) 
    }).join(''); 
} 
+0

辉煌,这很有道理!谢谢。 –

+0

小东西,但它把数字放入一个字符串 –