Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает сортировка. 
:(
    Опции темы
iadventureq
  Дата 7.4.2016, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 7.4.2016

Репутация: нет
Всего: нет



Здравствуйте. Я новичок.
Мне нужно создать программу, которая выводит на экран заданное кол-во строк (элементов массивов). При этом он должен сортировать строки по уменьшению их длины. Также программа должна сравнивать первые буквы (вторые, если первые одинаковые) строк одинаковой длины и сортировать их по алфавиту.
На данный момент я сделал отдельно сортировку по длине строки и генератор строки случайной длинны и случайных символов.
Код

<html><body><script>

    for (pp = 1; pp <= 20; pp++) // генератор случайной строки
    {

    rand = Math.round(Math.random()*80);
    var result       = '';
    var arr = new Array;
    var words        = '0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBN';
    var max_position = words.length - 1;

        for( num = 1; num <= rand; num=num+1)
        {
        position = Math.floor ( Math.random() * max_position );
        result = result + words.substring(position, position + 1);
        
        }
    arr[pp] = result;
    }


    var buffer = "";

    for(num2 = 0; num2 < arr.length - 1; num2++) // сортировка по длине
    {

        for(j = 0; j < arr.length - 1; j++)
        {
            if (arr[j].length < arr[j + 1].length)
            {
                buffer = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = buffer;
            }
        }

    }
        

    for (num3 = 0; num3 < arr.length; num3++) {
        document.write(arr[num3] + "<br/>");
    }


</script></body></html>

По отдельности эти две части работают. Проблема лишь в соединении.
P.S. Также, если не трудно, помогите с сортировкой по алфавиту между строк одинаковой длины.

PM MAIL   Вверх
igorold
Дата 7.4.2016, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: нет
Всего: 17



Непонятно, что хочешь соединить.
Массив формируешь, по длине строки сортируешь. Правда я бы не стал во втором цикле каждый раз перебирать весь массив.
По поводу сортировки по алфавиту - что не получается? или в гугле забанили?

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
lite_switch
Дата 8.4.2016, 21:40 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











http://stroymnogo.com/ Журнал выходит 1 раз в квартал.
Электронный научный журнал «СтройМного» включен в eLibrary.
В настоящее время идет формирование №1 (2), 2016.
Ежемесячная аудитория: более 10 000 уникальных пользователей.
Приглашаем авторов к публикации материалов. Возможны срочные публикации!

Этот ответ добавлен с нового Винграда - http://vingrad.com
  Вверх
sQu1rr
Дата 9.4.2016, 07:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 2
Всего: 13



задача решаетс извините в одну строку (с сортировкой всмысле). а заполнить массив - ну уж не смешите  smile 
Код

strings.sort(function (a, b) {
    return a.length == b.length ? a > b : b.length - a.length;
})


https://jsfiddle.net/sQu1rr/tk48xj4c/

Это сообщение отредактировал(а) sQu1rr - 9.4.2016, 07:04
PM MAIL Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.2141 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.