入力値があって、
04323033412
9 → 22
8 → 20
・・・
と変換したうえで、足し算するのですが、
var dial = array.replace(/0/g, "24").replace(/1/g, "6").replace(/2/g, "8").replace(/3/g, "10").replace(/4/g, "12").replace(/5/g, "14").replace(/6/g, "16").replace(/7/g, "18").replace(/8/g, "20").replace(/9/g, "22");
console.log(dial);
の出力結果が、
22 10 16 14 10 14 120 10 22 20
になり、7 が 18になるところ、120 になったり、0 が 2012 になったりします。
解決方法はあるのでしょうか。
入力は単一の文字列のようですが、出力は文字列である必要はありますか? 数値のリストでもよいのでは?
入力値を別の数字に変換して足し上げるので、
splitとjoinをかけて、0 4 3 2 3 0 3 3 4 1 2 スペースをつけてもう一度出し直したうえで、
数字の変更をかけまして、
もう一度配列にして、reduceで足し算をすればいいのかなというところでの過程になります。
※一桁と二桁が混入するので、後ほど配列にするためにあらかじめスペースを入れておこうとしています。
計算根拠がわからないのですが、変換して隣り合った数字を足すのでしょうか?
0+4→24+12=36ということではない?
まさにその通りです。
足し算の前段階の数字の変換がうまくいっていないのです。
mapで配列から変換するといいとご回答いただいたのですが、
mapの使い方で再びつまずいています。