Подсчета кол-ва вхождений каждого символа в строке.
Здрасте. Помогите с решением задачи: "Подсчета кол-ва вхождений каждого символа в строке". Вроде бы задача простая но что-то в голову не лезет ничего. Один из вариантов это набить массив всеми символы в строке по разу, а затем в цикле проверить каждый символ в этом массиве, но по моему туповатое решение какое-то, у кого какие идеи?
|
Цитата:
Массив можно сделать из строки: 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, время: 15:18. |