在javascript中循环匹配方法

时间:2016-04-13 01:28:41

标签: javascript

我想问一下,是否有任何简短的方法可以为数组的每个元素重复一个方法。我必须在输入框中计算每个字母的出现次数,我的想法是使用.match(/letter/gi).length并为此数组的每个元素执行它:var alphabet = "abcdefghijklmnopqrstuvwxyz".split("");这可能吗?

1 个答案:

答案 0 :(得分:0)

您可以创建一个对象来存储字符作为属性,字符数作为值存储;附加到Object.hasOwnProperty()元素的changeinput type="text"事件for循环迭代value input type="text"元素并设置属性,创建对象的值;要显示结果的input type="button"元素,请将input type="text"元素值重置为空字符串""



var input = document.querySelector("input[type=text]")
, button = document.querySelector("input[type=button]")
, output = document.querySelector("pre")
, obj = {};

input.addEventListener("change", function(event) {
  var letters = event.target.value;
  for (var i = 0; i < letters.length; i++) {
    if (!obj.hasOwnProperty(letters[i])) {
      obj[letters[i]] = 1; // set initial value to `1`
    } else {
      ++obj[letters[i]] // increment value of `obj[letters[i]]`
    }
  };
});

button.addEventListener("click", function() {
  console.log(obj);
  output.textContent = JSON.stringify(obj, null, 2); // display result
  input.value = ""; // reset `input` to `""`
})
&#13;
<input type="text" />
<input type="button" value="Count characters" />
<pre>
</pre>
&#13;
&#13;
&#13;