Показать сообщение отдельно
  #14 (permalink)  
Старый 07.01.2015, 22:10
Интересующийся
Отправить личное сообщение для igorz Посмотреть профиль Найти все сообщения от igorz
 
Регистрация: 19.09.2014
Сообщений: 23

рони,
Спасибо, обязательно попробую ваш пример

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
Ответить с цитированием