JavaScript: выполнять стабильную сортировку массива, сохраняя начальные индексы элементов, когда их значения совпадают
Основы JavaScript (синтаксис ES6): упражнение 137 с решением
Напишите программу на JavaScript для стабильной сортировки массива, сохраняя начальные индексы элементов, когда их значения совпадают. Не изменяйте исходный массив, но вместо этого возвращает новый массив.
Пример решения:
HTML-код:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Perform stable sorting of an array, preserving the initial indexes of items when their values are the same</title>
</head>
<body>
</body>
</html>
Код JavaScript:
//#Source https://bit.ly/2neWfJ2
const stableSort = (arr, compare) =>
arr
.map((item, index) => ({ item, index }))
.sort((a, b) => compare(a.item, b.item) || a.index - b.index)
.map(({ item }) => item);
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(stableSort(arr, () => 0));
Пример вывода:
[0,1,2,3,4,5,6,7,8,9,10]
Блок - схема:
Демонстрация в реальном времени:
См. Pen javascript-basic-упражнение-137-1 от w3resource ( @ w3resource ) в CodePen .
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите программу на JavaScript для генерации всех перестановок строки (содержит дубликаты).
Далее: Напишите программу на JavaScript, которая принимает переменную функцию и возвращает замыкание, которое принимает массив аргументов для сопоставления с входными данными функции.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования