Почему не выводится результат отработки функции?

Есть функция decode в отдельном файле. Скрипт работает исправно, подключен в конце. Не выводится результат работы функции в output.

let secretMessage;

function decode(secretMessage) {
  secretMessage = document.getElementById('secondMessage').value
    .split(' ').map(secretWord => {
      String.fromCharCode(secretWord.split('').reduce((prev, curr) => {
        Number(prev) + Number(curr)
      }))
    }).join('')
  document.getElementById('secondValues').innerHTML = secretMessage
};
<div class='jsCodeBlock'>
  <p class='decodeP'>encode function(less 10)</p>
  <div class=jsInput>
    <input class='input2' id='secondMessage' value="99" type="text" placeholder="Paste encode result here">
  </div>
  <div class='jsButton'>
    <button class='button2' onclick='decode(secretMessage)'>Get Result</button>
  </div>
  <div class='decodeResult'>
    <output id='secondValues'>
                        </output>
  </div>
</div>


Ответы (1 шт):

Автор решения: Igor

Есть идентичный код с другим input , в котором так же его значение определяется внутри функции. Там все работает.

"Там" не может ничего работать, потому что Вы ничего не возвращаете из стрелочных функций.

function decode() {
  let secretMessage = document.getElementById('secondMessage').value
    .split(' ').map(secretWord => 
      String.fromCharCode(secretWord.split('').reduce((prev, curr) =>
        Number(prev) + Number(curr)
      ))
    ).join('');
  document.getElementById('secondValues').innerHTML = secretMessage
};
<div class='jsCodeBlock'>
  <p class='decodeP'>encode function(less 10)</p>
  <div class=jsInput>
    <input class='input2' id='secondMessage' value="9977777 123777777 456777" type="text" placeholder="Paste encode result here">
  </div>
  <div class='jsButton'>
    <button class='button2' onclick='decode()'>Get Result</button>
  </div>
  <div class='decodeResult'>
    <output id='secondValues'></output>
  </div>
</div>

→ Ссылка