как сделать, чтобы посчиталось в процентном содержании каждого символа в тексте

всем привет, помогите пожалуйста, нужно чтобы в абзаце 'procent' выводилось сообщение о том, сколько содержании каждого символа в тексте в процентах, вот мои попытки, обозначил в коде

let textarea = document.querySelector('textarea');
let wordСount = document.querySelector('#wordСount');
let characterNumber = document.querySelector('#characterNumber');
let characterNumberNoSpaces = document.querySelector('#characterNumberNoSpaces');
let propcent = document.querySelector('#procent');

textarea.addEventListener('blur', function(){
    const podschet =  textarea.value.split(' ');
    wordСount.textContent = podschet.length;
    characterNumber.textContent = textarea.value.length;
    const noSpaces = textarea.value.split('').filter(c => c != ' ').length;
    characterNumberNoSpaces.textContent = noSpaces;

  
//мои попытки
    let result = {};

    for (let i = 0; i < podschet.length; i++){
        let a = podschet[i];
        if (result[a] != undefined){
            ++result[a];
        } else {
            result[a] = 1;
        }
    }

    for (let key in result){
        propcent.textContent = 'символ ' + key + ' == ' + result[key] + ' раз(а)'
    }
});
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
        <textarea id="" maxlength="640"></textarea>
        <p id="wordСount"></p>
        <p id="characterNumber"></p>
        <p id="characterNumberNoSpaces"></p>
        <p id="procent"></p>

    <script src="js/app.js"></script>
</body>
</html>


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

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

Чтобы посчитать сколько процентов число X составляет от числа Y применим формулу (X * 100) / Y или к примеру (5 * 100) / 12 = 41.6 Также стоит учесть, что a и A это одна и та же буква, но разные по регистру, если необходимо считать с учетом регистра, то нужно удалить строку leter = leter.toLowerCase()

let textarea = document.querySelector('textarea');
let wordСount = document.querySelector('#wordСount');
let characterNumber = document.querySelector('#characterNumber');
let characterNumberNoSpaces = document.querySelector('#characterNumberNoSpaces');
let propcent = document.querySelector('#procent');

textarea.addEventListener('blur', function() {
  const podschet = textarea.value.split(' ');
  wordСount.textContent = podschet.length;
  characterNumber.textContent = textarea.value.length;

  const noSpaces = textarea.value.split('').filter(c => c != ' ').length;

  characterNumberNoSpaces.textContent = noSpaces;

  let symbol = {};
  let res = [];
  for (let leter of textarea.value) {
    leter = leter.toLowerCase()
    if (symbol[leter]) {
      symbol[leter]++;
    } else {
      symbol[leter] = 1;
    }
  }
  for (let key in symbol) {
    res.push(key + ": " + (100 * symbol[key]) / textarea.value.length + "%")
  }
  propcent.innerHTML = res.join('<br>')
});
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <textarea id="" maxlength="640"></textarea>
  <p id="wordСount"></p>
  <p id="characterNumber"></p>
  <p id="characterNumberNoSpaces"></p>
  <p id="procent"></p>

  <script src="js/app.js"></script>
</body>

</html>

→ Ссылка