Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Оцените мой скрипт (https://javascript.ru/forum/project/65334-ocenite-mojj-skript.html)

quam 12.10.2016 23:01

Оцените мой скрипт
 
Готов к конструктивной и уничижительной критике :) (являюсь тотальным новичком в JS)

↓Предназначение скрипта: подсчитывать и выводить на страницу количество букв, содержащихся в водимом юзером тексте.
var alphabet = [["a",0],["b",0],["c",0],["d",0],["e",0],["f",0],["g",0],["h",0],["i",0],["j",0],["k",0],["l",0],["m",0],["n",0],["o",0],["p",0],["q",0],["r",0],["s",0],["t",0],["u",0],["v",0],["w",0],["x",0],["y",0],["z",0]];
var input = prompt("Type in something ");

for (var i = 0; i < input.length; i++)
	{
	 for (var j = 0; j < alphabet.length; j++)
		{
		 if (input[i].toLowerCase() == alphabet[j][0])
			{
			 alphabet[j][1] ++;
			}
		}
	}

for (i = 0; i < alphabet.length; i++)
	{
	 if (alphabet[i][1] > 0)
	 {
	  document.write("You've typed in " + alphabet[i][1] + " " + alphabet[i][0] + "'s<br \/>");
	 }
	}

рони 12.10.2016 23:25

quam,
а если так?
var alphabet = {a: 0, ....}

psiklop 12.10.2016 23:30

я конечно не профессор, но цикл по каждой букве в строке и внутри цикл по каждой букве алфавита это не гут, лучше просто цикл по алфавиту и махом все найденные запомнить.
а считать можно например так: input.match(/alphabet[i]/g).length

Aetae 12.10.2016 23:36

<input><pre></pre>
<script>
var input = document.querySelector('input'), 
    pre = document.querySelector('pre');

input.addEventListener('input', e=>{
  pre.textContent = JSON.stringify( 
    input.value.split('').reduce( 
      (obj, char) => (char in obj ? obj[char]++ : obj[char] = 1, obj), 
      Object.create(null)
    ), 
    0, 
    ' ' 
  ).slice(2,-2)
})
</script>


Часовой пояс GMT +3, время: 01:23.