рони,
Спасибо, обязательно попробую ваш пример
Aetae,
Я понимаю что в массивах не бывает пропусков. Но зачем мне массив б'ольшего размера ?
Сделал свой вариант велосипеда, вроде работает правильно:
var data = [
["Name", "1"],
["Name", "1"],
["Name", "2"],
["Name", "5"],
["Name", "2"]
];
function sortJSONresult(param) {
var saveFlag = 0;
var sortedArray = new Array();
if (param.length > 0) {
sortedArray.push(param[0]);
for (var i = 1; i < param.length; i++) {
for (var j = 0; j < sortedArray.length; j++) {
if ((param[i][1] == sortedArray[j][1]) && (saveFlag != 1)) {
sortedArray[j].push(param[i]);
saveFlag = 1;
} else {
if ((j == (sortedArray.length - 1)) && (saveFlag != 1)) {
sortedArray.push(param[i]);
saveFlag = 1;
}
}
}
saveFlag = 0;
}
}
return sortedArray;
}
var srt = sortJSONresult(data);
//смотрю результат
for (var i = 0; i < srt.length; i++) {
console.log("i = " + i + ", " + srt[i]);
}
//i = 0, Name,1,Name,1
//i = 1, Name,2,Name,2
//i = 2, Name,5
Но меня смущает один момент: sortedArray
[i].push(param[i]) - так вообще можно делать ? Оно-то вроде работает... но после такого применения почему-то меняется первоначальный массив, который передаётся в функцию (как так ?)
//первоначальный массив меняется на такой:
i = 0, Name,1,Name,1
i = 1, Name,1
i = 2, Name,2,Name,2
i = 3, Name,5
i = 4, Name,2
//этот на вадаче из функции
i = 0, Name,1,Name,1
i = 1, Name,2,Name,2
i = 2, Name,5