Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.04.2016, 23:54
Новичок на форуме
Отправить личное сообщение для NewbieJS11 Посмотреть профиль Найти все сообщения от NewbieJS11
 
Регистрация: 06.04.2016
Сообщений: 2

Не работает сортировка.
Здравствуйте. Я новичок.
Мне нужно создать программу, которая выводит на экран заданное кол-во строк (элементов массивов). При этом он должен сортировать строки по уменьшению их длины. Также программа должна сравнивать первые буквы (вторые, если первые одинаковые) строк одинаковой длины и сортировать их по алфавиту.
На данный момент я сделал отдельно сортировку по длине строки и генератор строки случайной длинны и случайных символов.
<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. Также, если не трудно, помогите с сортировкой по алфавиту между строк одинаковой длины.
Ответить с цитированием
  #2 (permalink)  
Старый 07.04.2016, 08:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

NewbieJS11,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
<body>
<script>
var arr = new Array;
var words = "0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBN";
for (var pp = 0; pp < 20; pp++) {
    var rand = Math.round(Math.random() * 80);
    var result = "";
    for (var num = 0; num < rand; num++) {
        var position = Math.floor(Math.random() * words.length);
        result += words.substring(position, position + 1)
    }
    arr[pp] = result
}
var buffer = "";
for (var num2 = 0; num2 < arr.length - 1; num2++)
    for (var j = 0; j < arr.length - 1; j++)
        if (arr[j].length < arr[j + 1].length || arr[j].length == arr[j + 1].length && arr[j] > arr[j + 1]) {
            buffer = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = buffer
        }
for (var num3 = 0; num3 < arr.length; num3++) document.write(arr[num3] + "====" + arr[num3].length + "<br/>");
  </script>
</body>
</html>

Последний раз редактировалось рони, 07.04.2016 в 08:50.
Ответить с цитированием
  #3 (permalink)  
Старый 07.04.2016, 10:06
Новичок на форуме
Отправить личное сообщение для NewbieJS11 Посмотреть профиль Найти все сообщения от NewbieJS11
 
Регистрация: 06.04.2016
Сообщений: 2

Сообщение от рони Посмотреть сообщение
NewbieJS11,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
<body>
<script>
var arr = new Array;
var words = "0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBN";
for (var pp = 0; pp < 20; pp++) {
    var rand = Math.round(Math.random() * 80);
    var result = "";
    for (var num = 0; num < rand; num++) {
        var position = Math.floor(Math.random() * words.length);
        result += words.substring(position, position + 1)
    }
    arr[pp] = result
}
var buffer = "";
for (var num2 = 0; num2 < arr.length - 1; num2++)
    for (var j = 0; j < arr.length - 1; j++)
        if (arr[j].length < arr[j + 1].length || arr[j].length == arr[j + 1].length && arr[j] > arr[j + 1]) {
            buffer = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = buffer
        }
for (var num3 = 0; num3 < arr.length; num3++) document.write(arr[num3] + "====" + arr[num3].length + "<br/>");
  </script>
</body>
</html>
Большое спасибо!!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
Сортировка - кто пояснит как работает код.. caca0 Javascript под браузер 1 23.05.2012 18:08
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11