Статистика массива
Помогите сделать задание
нужно определить, сколько раз каждый элемент встречается в массиве 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]]. :-E |
harold,
а пару строк сами? |
моя это не воспринимать никак(
чувствую, что нужна сортировка, а дальше ступор. |
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]] }))); |
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('], [')+']]' ); |
Часовой пояс GMT +3, время: 06:35. |