Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.09.2013, 00:40
Новичок на форуме
Отправить личное сообщение для harold Посмотреть профиль Найти все сообщения от harold
 
Регистрация: 20.06.2013
Сообщений: 8

Статистика массива
Помогите сделать задание

нужно определить, сколько раз каждый элемент встречается в массиве A.
Результат представить в виде 2d-массива [[A[m],частота], [A[n],частота], ...].
Например для A = [2, 7, 5, 1, 'a', 5, 2, 2, 'a', 'a', 7, 0]
нужно получить [[2,3], [7,2], [5,2], [1,1], ['a',3], [0,1]].

Ответить с цитированием
  #2 (permalink)  
Старый 30.09.2013, 00:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

harold,
а пару строк сами?
Ответить с цитированием
  #3 (permalink)  
Старый 30.09.2013, 01:02
Новичок на форуме
Отправить личное сообщение для harold Посмотреть профиль Найти все сообщения от harold
 
Регистрация: 20.06.2013
Сообщений: 8

моя это не воспринимать никак(
чувствую, что нужна сортировка, а дальше ступор.
Ответить с цитированием
  #4 (permalink)  
Старый 30.09.2013, 01:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

harold,

for (var a = [2, 7, 5, 1, "a", 5, 2, 2, "a", "a", 7, 0], b = {}, i = 0; i < a.length; i++) b[a[i]] ? b[a[i]]++ : b[a[i]] = 1;
alert(JSON.stringify(Object.keys(b)
    .map(function (c) {
        return [c, b[c]]
    })));
Ответить с цитированием
  #5 (permalink)  
Старый 30.09.2013, 01:34
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

harold, сортировка не нужна

function StatOfArr(A)
{
    var n = A.length, B = [], b = 0;
      
    for (var i = 0; i < n; i++)
     { var k = 0, count = 1;
       while (k < b && B[k][0] !== A[i]) k++;
       if (k === b)
        { for (var j = i+1; j < n; j++){ if (A[i] === A[j]) count++; }
          B[b++] = [A[i],count]; 
        }
     }
   
    return B;
}

var arr = [2, 7, 5, 1, 'a', 5, 2, 2, 'a', 'a', 7, 0];
alert( '[['+StatOfArr(arr).join('], [')+']]' );

Последний раз редактировалось Demath, 30.09.2013 в 01:36.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена элементов массива элементами массива prostoix Javascript под браузер 4 24.10.2013 17:36
Выбор из массива трех элементов sonntagausgang Общие вопросы Javascript 2 26.05.2013 02:59
Нужен цикл для создания огромного массива apish Общие вопросы Javascript 2 20.09.2012 16:10
Сортировка массива по ключу RazZzeR Элементы интерфейса 9 21.07.2012 19:31
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53