Подсчета кол-ва вхождений каждого символа в строке.
Здрасте. Помогите с решением задачи: "Подсчета кол-ва вхождений каждого символа в строке". Вроде бы задача простая но что-то в голову не лезет ничего. Один из вариантов это набить массив всеми символы в строке по разу, а затем в цикле проверить каждый символ в этом массиве, но по моему туповатое решение какое-то, у кого какие идеи?
|
Цитата:
Массив можно сделать из строки: var alph= ("абвгдеё").split(""); |
a_l, строка и так является массивом
alert("абвгдеё".length); только для обращения к элементам нужно использовать метод charAt() иначе не кроссбраузерно((( |
// регвыр символов, которые учавствуют в подсчёте. var allowed = /[а-яё]/i; // собираем информацию : var results = Array.prototype.reduce.call("Подсчета кол-ва вхождений каждого символа в строке", function (data, letter) { if (allowed.test(letter)) { letter = letter.toLowerCase(); if (data[letter] === undefined) { data[letter] = 0; } data[letter] += 1; } return data; }, {}); // выводим: for (var letter in results) { alert('Символ "' + letter + '" повторяется "' + results[letter] + '" раз.'); } |
Вот:
function count_char(str){ count = str.length; var res = 0; for(i=0; i < count; i++){ if(str.charAt(i) == " "){ continue } res++; } return res; } |
Дзен-трансгуманист, хорошо...массивом букв)
|
Цитата:
http://es5.javascript.ru/x8.html#x8.4 |
Ну объясните тогда почему неправильное решение раз уж мне минус кто-то (жирный) поставил
и написал что "неправильное решение" Так и хочется сказать: "Разуй глаза криворукое...!!!, имбицилу которое минусы лепит" |
Подсчета кол-ва вхождений каждого символа в строке.
:thanks:
Цитата:
|
var string = 'Подсчета кол-ва вхождений каждого символа в строке', sums = {}; string.split('').map(function(e){ //e = e.toLowerCase(); - для включения регистронезавимисомти. sums[e] = !sums[e] ? 1 : sums[e]+1; }); console.log(sums); |
Часовой пояс GMT +3, время: 14:56. |