Статистика массива
Помогите сделать задание
нужно определить, сколько раз каждый элемент встречается в массиве 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, время: 10:36. |