Есть данные: цвет. У каждого цвета свой размер (может повторятся). Необходимо сделать группировку в jscript по цвету и повторяющиеся размеры посчитать.
Вывести все это.
Для начала создадим массив наших данных. Нам для это надо создать массив массивов.
var array_res = new Array(); .....// тут цикл в котором получаю данные array_res[i]=new Array (); array_res[i].push(color,fasA+'x'+fasL+';'); //Получается вида [["Красный","716x396"],[....,....]] .... //запускаем процедуру для группирования print_Group(array_res);
Сама функция для группировки с комментариями. Тут используются ассоциативные массивы.
function print_Group(arr_res){
gr = [];
// Для каждого цвета собираем его размеры
for (var i = 0; i < arr_res.length; i++) {
if (gr[arr_res[i][0]]== null ) {gr[arr_res[i][0]]="";}
gr[arr_res[i][0]] += arr_res[i][1];
}
// группируем и считаем элементы
for (var k in gr) {
// Выводим цвет
document.write('<tr><td colspan="2"><b>'+ k + '</b></td></tr>');
c = [];
t_c = gr[k].split(';'); //получаем массив всех размеров
for (var i = 0; i < t_c.length-1; i++) {
if (c[t_c[i]]== null) c[t_c[i]] = 0;
c[t_c[i]] +=1; // счетчик одинаковых размеров
}
//выводим размер и его количество
for (var t in c) {
document.write('<tr><td colspan="2">'+t + '= ' + c[t] +' шт'+ '</td></tr>');
}
}
}
Вот такая группировка получается в итоге.