var arr = ['bla','hahahah','123456789','1','ew'];
function lensort(a,b)
{
var s1 = "" + a; // Что это за переменная?
var s2 = "" + b; // а это?
if(s1.length < s2.lenght){
return false;
}
else if(s1.length > s2.length){
return true;
}
}
console.log(arr.sort(lensort)) --> arr["1", "ew", "bla", "hahahah", "123456789"]
как эта функция отсортировала массив по длине его элементов?
Как описан Grundy, тут основной момент играет использование метода sort
. По сути, функция lensort
представляет собой "критерий выбора". Т.е. метод sort
отдает методу lensort
2 значения. Т.е. на первом шаге оно выдало в метод lensort
значения arr[0]
и arr[1] ( 'bla','hahahah')
. Далее помечу в коде что и как:
function lensort(a,b)
{
var s1 = "" + a; // Это первый параметр или arr[0]
var s2 = "" + b; // это второй параметр или arr[1]
// по сути тут мы однозначно получаем строки s1 и s2 типа string
if(s1.length < s2.lenght){
return false; // элементы на своих позициях по возрастанию
}
else if(s1.length > s2.length){
return true; // элемент arr[0] больше и его мы будет "двигать" вправо по массиву
}
}
В итоге, когда ваша функция lensort
возвращает true
, то метод sort
делает решение что первый элемент "больше" второго и смешает его правее. И дальше итерация перемещается дальше и сравнивает другие 2 значения, например arr[1]
и arr[2]
(в зависимости от алгоритма, могут сравниваться первый элемент со всеми оставльными, или методом пузырька и т.п. смотрите "алгоритмы сортировки")
var s1 = "" + a;
так делают чтобы получить строку в любом случае, то есть если там будет 123456789 то оно может быть как string так и int, чтобы оно однозначно имело тип string делают такую хитрую операцию, таких хитростей много, например если мы хотим иметь всегда какое-то значение то делаем так
var s = object.param || "строка";
и тогда даже если string будет object.param не будет существовать в переменной s будет значение "строка" ,а не undefined.
Помогите чайникуСитуация такова: модальное окно на CSS, в нем карусель видео с ютуба, при закрытии модали - воспроизведение продолжается
В переменной b хранится клон объекта span и вместо того чтобы вставился элемент Текст вставляется вот это [object Object]