Как сложить результаты ключей
Данный код должен переводить из строк в цифры а так же сумму этих чисел
Например: BARSIC - это 16, ABC - это 6
function presses(phrase) {
var num = {'1':1,'A':1,'D':1,'G':1,'J':1,'M':1,'P':1,'T':1,'W':1,' ':1,'*':1,'#':1,'B':2,'E':2,'H':2,'K':2,'N':2,'Q':2,'U':2,'X':2,'0':2,'C':3,'F':3,'I':3,'L':3,'O':3,'R':3,'V':3,'Y':3,'2':4,'3':4,'4':4,'5':4,'6':4,'S':4,'8':4,'Z':4,'7':5,'9':5};
let NP = phrase.split('')
NP.map(function(char) {
let arr = num[char]
console.log(arr)
})
}
При вводе слова CFI вместо 9 выводит 3 3 3
Как правильно написать чтобы выводила сумму num[char]
Ответы (1 шт):
Автор решения: Sergey Glazirin
→ Ссылка
Если нужно преобразовать массив в какое-то число, то стоит использовать метод .reduce().
Во-вторых, у вас не было никакого суммирования вообще. Вы просто получали коды ваших символов и выводили их в консоль.
function presses(phrase) {
var num = {
'1': 1,
'A': 1,
'D': 1,
'G': 1,
'J': 1,
'M': 1,
'P': 1,
'T': 1,
'W': 1,
' ': 1,
'*': 1,
'#': 1,
'B': 2,
'E': 2,
'H': 2,
'K': 2,
'N': 2,
'Q': 2,
'U': 2,
'X': 2,
'0': 2,
'C': 3,
'F': 3,
'I': 3,
'L': 3,
'O': 3,
'R': 3,
'V': 3,
'Y': 3,
'2': 4,
'3': 4,
'4': 4,
'5': 4,
'6': 4,
'S': 4,
'8': 4,
'Z': 4,
'7': 5,
'9': 5
};
let letters = phrase.split('');
return letters.reduce((acc, item) => num[item] + acc, 0);
}
console.log(presses('BARSIC'));
console.log(presses('ABC'));
console.log(presses('CFI'));