2017-04-07 15 views
0

複数桁の数字を取り、それらの2乗のそれぞれの結果を含む数値を返す関数を記述したいと思います。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.powNumber、ない配列を返しますが、Array.prototype.mapありません。 joinは、Array.prototypeメソッドです。

+0

しかし、どのように私は.joinを(削除した場合、その後に来る)が配列である: [25、4]?私は結果を単純に254にします。 –

+0

'.map'への呼び出しの結果から結合を行います... –

+0

ありがとう、私はそれを行いましたが、動作している間は数字が文字列です。私はこれを数字に変換するのに問題があります。 –

2

これを試してください。返されるものあなたの.join()誤配置

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

賢い、それは理にかなっている!ありがとう。 –

+0

小さなものですが、数字を文字列に入れます –

関連する問題