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, время: 05:55. |