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. Массивы и их обработка
   158   159   160   161   162   163   164   165   166   167   168