igorz, так и должно быть. В массивах не бывает пропусков. Возможно вам нужен объект.
|
рони,
Спасибо, обязательно попробую ваш пример :) 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 |
Цитата:
Люди даже так делают чтобы воспользоваться готовым: создают временную таблицу которую забивают из запросов, а потом с нее уже запрашивают еще раз. Собственно в большинстве сложных запросов драйвер так и поступает - через временную все собирает. Короче вам правильно написали - делайте сразу такой запрос, который требуют условия. Отсортировать по мелочи, конечно можно, но не туплю (tuple); |
Цитата:
А я еще думаю почему у вас ни разу слово sort не прозвучало. Короче, прекращайте колхозить, есть научные методы сортировки многомерных (условно в js нет таких) массивов - http://stackoverflow.com/questions/3...ensional-array Короче как вы делаете - так не бывает, это сферический конь в вакууме, так не делают. |
Цитата:
Но я логику представлял так, что 1. Сделал запрос. 2. Обработал данные не стороне клиента + дальнейшие действия. А по вашему, выходит, что я вместо 1 запроса в бд должен буду сделать N запросов для формирования таблицы (я правильно понял ?) И вместо, допустим, 1мс на его выполнение, буду ждать 1мс*N. Так действительно принято делать ? |
| Часовой пояс GMT +3, время: 13:09. |