БлогNot. Javascript: как сортировать массив числовых значений?

Javascript: как сортировать массив числовых значений?

По умолчанию JS сортирует элементы массива в алфавитном порядке и как строки, так что код

var a = [8, 50, 200];
a.sort();

даст нам массив с порядком элементов 200, 50, 8.

Решить проблему легко, передав в стандартную функцию sort пользовательскую функцию сравнения элементов:

a.sort ( function(a,b) { return a - b; });

Ниже приводится более подробный листинг документа .html в кодировке Юникода utf-8, который показывает суть дела.

Отсортированный случайный массив из 1000 целочисленных элементов, значения которых попадают в интервал [1; 128], сортируется правильно, преобразуется в строку и выводится в раздел документа с идентификатором test.

Для сортировки по убыванию замените return a - b на return b - a

<!DOCTYPE HTML>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Integer Array Sorting</title>
</head>
<body>

<div id="test"></div>
<script>
 function randomInt (n1, n2) { //Случайное целое из интервала [n1,n2]
  return Math.floor(n1 + Math.random() * (n2 - n1 + 1));
 }
 var a = [];
 for (var i=0; i<1000; i++) a.push(randomInt(1,128)); //заполнение
 document.getElementById('test').innerHTML =  a.sort ( function(a,b) { return a - b; }).join(' ');
  //сортировка и вывод
</script>
<noscript>Нужен включённый в браузере Javascript для работы приложения!</noscript>

</body>
</html>

05.10.2019, 13:57 [1418 просмотров]


теги: javascript числа

К этой статье пока нет комментариев, Ваш будет первым