Объясните почему получилось от меньшего к большему ?
function compareNumeric(a, b) {
if (a > b) return 1;
if (a < b) return -1;
}
var arr = [ 1, 22, 15 ];
arr.sort(compareNumeric);
alert(arr);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Syntax
function compareNumeric(a, b) {
console.log("comparing", a, b);
return a - b;
}
var arr = [ 1, 22, 15 ];
arr.sort(compareNumeric);
console.log(JSON.stringify(arr));
что он делает с 1 я не могу понять ?
Метод sort
сам "не знает", как сравнить два элемента массива. Но это знаем мы, и мы передаем это знание методу sort
через параметр - функцию compare
. Метод sort
всегда стремится разместить элементы массива в порядке возрастания. Метод sort
в своем алгоритме доходит до места, где ему надо сравнить два элемента массива. Метод sort
вызывает функцию compare
с этими двумя элементами и получает результат. Если этот результат меньше нуля - первый элемент (первый - в том порядке, в каком эти два элемента были переданы в функцию compare
) меньше второго. Если результат больше нуля - первый элемент больше второго. Если результат - ноль, элементы считаются одинаковыми для целей текущей сортировки. Теперь метод sort
знает, как соотносятся два элемента, которые ему надо было сравнить и может переставлять (или не переставлять) их для создания сортированного массива.
Вы попробуйте сначала документацию почитать, прежде чем вопросы задавать
Если функция сравнения compareFunction
предоставлена, элементы массива сортируются в соответствии с её возвращаемым значением. Если сравниваются два элемента a
и b
, то:
compareFunction(a, b)
меньше 0, сортировка поставит a
по меньшему индексу, чем b
, то есть, a
идёт первым.compareFunction(a, b)
вернёт 0
, сортировка оставит a
и b
неизменными по отношению друг к другу, но отсортирует их по отношению ко всем другим элементам.compareFunction(a, b)
больше 0
, сортировка поставит b
по меньшему индексу, чем a
.compareFunction(a, b)
должна всегда возвращать одинаковое значение для определённой пары элементов a
и b
. Если будут возвращаться непоследовательные результаты, порядок сортировки будет не определён.Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
не могу найти treeview компонент которого использовать в другой модели yii2 То есть при создании записи в другой модели (таблице) выбираю treeview компонента...
Когда добавляешь цифры в массив он переворачивает, а добавляешь строку не переворачивает хотя видит ее длину
Нужно puppeteer скомпилировать в exe файл! Пробую zeit/pkg но выбивает всегда ошибку http://prntscrcom/lthfx5 Искал проблему на github, все перепробовал - не помогло...