javascript - 如何使用javascript整合字符串中字符的计数频率

标签 javascript html

我有一些简单的HTML代码

<textarea id="text" placeholder="Type text...."></textarea>
<a id="button" class="button"></a>
<textarea id="result" disabled></textarea>

我有一个javascript代码

function getFrequency(string) {
    var freq = {};
    for (var i=0; i<string.length;i++) {
        var character = string.charAt(i);
        if (freq[character]) {
           freq[character]++;
        } else {
           freq[character] = 1;
        }
    }

    return freq;
};

我只想将 js 与 HTML 集成,以计算 id="text"文本区域内的每个字符频率,并在 id="result"文本区域内显示结果。我试过用

document.getElementById("text").value;

但出了点问题,仍然无法正常工作。有什么方法可以轻松做到这一点?

最佳答案

如果你想在打字时这样做,你可以使用文本区域上的 keyup 事件,方法如下

function getFrequency(string) {
    var freq = {};
    for (var i=0; i<string.length;i++) {
        var character = string.charAt(i);
        if (freq[character]) {
           freq[character]++;
        } else {
           freq[character] = 1;
        }
    }

    return freq;
};

window.addEventListener('load', function() {
  const textbox = document.getElementById('text');
  const result = document.getElementById('result');
  
  textbox.addEventListener('keyup', function() {
    const frequency = getFrequency( textbox.value );
    result.value = Object.keys( frequency ).map( key => `${key}: ${frequency[key]}` ).join('\n');
  });
});
<textarea id="text" placeholder="Type text...."></textarea>
<a id="button" class="button"></a>
<textarea id="result" disabled></textarea>

如果你想在点击按钮时执行此操作,你可以像这样更改之前的代码:

document.getElementById('button').addEventListener('click',  function() {
  const frequency = getFrequency( textbox.value );
  result.value = Object.keys( frequency ).map( key => `${key}: ${frequency[key]}` ).join('\n');
});

关于javascript - 如何使用javascript整合字符串中字符的计数频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54201749/

相关文章:

javascript - 悬停时更改 GridView

javascript - Javascript 中的 Scratch 样式 token 字段

html - 可滚动div中的绝对div滚动

JavaScript 问题 - Firefox

javascript - React-Router - 未捕获的类型错误 : Cannot read property 'route' of undefined

javascript - 复选框问题 oncheck 函数

html - 什么时候应该溢出 :hidden be used for a <div>?

javascript - 我的表单上的 React 生成按钮不断刷新页面

html - IE8 浏览器 Bootstrap 只工作响应模式

html - 更改朝阳可视化箭头框的大小