Page 163 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 163
В данном примере мы возвращаем логическое значение. Но метод
sort понимает также и число в виде возвращаемого значения. Если
вы возвратите О, то метод sort будет полагать, что эти два элемен
та "равны'', и оставит порядок неизменным. Это позволило бы нам,
например, сортировать в алфавитном порядке, за исключением слов,
начинающихся с символа k. При этом все было бы отсортировано
в алфавитном порядке, со всеми словами k, расположенными после
всех слов j и перед всеми словами l, но слова k будут в их исходном
порядке (т.е. несортированными).
П о и с к в массиве
Если вы хотите найти что-то в массиве, у вас есть несколько возможностей. Нач
нем со скромного метода indexOf, который был доступен в JavaScript довольно дав
но. Метод indexOf просто возвращает индекс первого найденного элемента, строго
равного искомому (есть соответствующий метод lastindexOf, осуществляющий по
иск в обратном направлении и возвращающий последний индекс, который соответ
ствует искомому). Чтобы выполнять поиск только в части массива, можно опреде
-
лить необязательный индекс начала. Если indexOf (или lastindexOf) возвращает 1 ,
это означает, что соответствие не найдено.
coпst о = { паше : 11 Jerry11 } ; ] ;
coпst arr = [ 1 , 5 , 11 а 11 , о , true , 5 , [ 1 , 2 ] , 11 9 11
arr . indexOf ( 5 ) ; 1 1 возвращает 1
(
arr . last indexOf 5 ) ; 1 1 возвращает 5
arr . iпdexOf ( 11a 11 ) ; / / возвращает 2
arr . last indexOf ( 11 a 11 ) ; / / возвращает 2
arr . indexOf ( { паше : 11 Jerry11 } ) ; 1 1 возвращает -1
arr . indexOf ( o ) ; / / возвращает 3
arr . indexOf ( [ 1 , 2 ] ) ; 1 1 возвращает -1
arr . iпdexOf ( 11 9 11 ) ; 1 1 возвращает 7
arr . iпdexOf ( ) ; 1 1 возвращает - 1
9
arr . iпdexOf ( 11 a 11 , 5 ) ; / / возвращает -1
arr . iпdex0f ( 5 , 5 ) ; 1 1 возвращает 5
arr . l astiпdexOf ( 5 , 4 ) ; / / возвращает 1
(
arr . lastiпdexOf t rue , 3 ) ; 1 1 возвращает -1
Далее, метод f indindex подобен методу indexOf в том, что возвращает индекс
(или - 1 при отсутствии соответствия), но более гибко. Он позволяет задать функ
цию, которая определяет, является ли элемент соответствующим ( f i ndindex не мо
жет начать работу с произвольного индекса и не имеет аналога lastindexOf).
coпst arr = [ { id : 5 , паше : 11 Judith11 } , { i d : 7 , паше : 11 Francis 11 ) ] ;
arr . findindex ( o => o . i d === 5 ) ; / / возвращает О
r
ar . f indindex ( o => о . паше === 11 Fraпcis 11 ) ; / / возвращает 1
1 6 4 Глава 8. Массивы и их обработка

