Array.prototype.sort()

Содержание:

DataView

DataView – это специальное супергибкое нетипизированное представление данных из . Оно позволяет обращаться к данным на любой позиции и в любом формате.

  • В случае типизированных массивов конструктор строго задаёт формат данных. Весь массив состоит из однотипных значений. Доступ к i-ому элементу можно получить как .
  • В случае доступ к данным осуществляется посредством методов типа или . Мы выбираем формат данных в момент обращения к ним, а не в момент их создания.

Синтаксис:

  • – ссылка на бинарные данные . В отличие от типизированных массивов, не создаёт буфер автоматически. Нам нужно заранее подготовить его самим.
  • – начальная позиция данных для представления (по умолчанию 0).
  • – длина данных (в байтах), используемых в представлении (по умолчанию – до конца ).

Например, извлечём числа в разных форматах из одного и того же буфера двоичных данных:

Представление отлично подходит, когда мы храним данные разного формата в одном буфере. Например, мы храним последовательность пар, первое значение пары 16-битное целое, а второе – 32-битное с плавающей точкой. позволяет легко получить доступ к обоим.

Работа с массивами JS — нечисловые ключи массива

Ключи — это числа, но они могут иметь любые имена:

arr = [] 
arr = 5
arr.prop = 10 // не делайте так

Но делать этого не рекомендуется. Числовые массивы подходят для числовых ключей, а JavaScript ассоциативный массив — для связанных пар ключ-значение. И смешивать их не стоит.

Массивы в JavaScript представляют собой хэш-таблицы с их преимуществами в плане производительности, но и с определенными недостатками.

Например, push/pop работают только с крайними элементами массива, поэтому они невероятно быстры.

push работает только с концом:

var arr = 
arr.push("something")
alert(arr) // строка "array"

Методы shift/unshift медленные, потому что им нужно изменить нумерацию всего массива. Метод splice также может привести к изменению нумерации:

shift/unshiftpush/popJavaScript

Какой получится результат? Почему?

arr = 
arr.push( function() { alert(this) } )
arr()  // ?

Решение

Поскольку массивы являются объектами, arr<a href=»/..»>..</a> фактически является вызовом метода объекта, таким как obj<a href=»/method»>method</a>:

arr() 
// то же самое что
arr()
// синтаксически это неправильно, но концептуально то же самое:
arr.2() 
// переписанное в том же стиле, что и obj.method()
this = arr в таком случае передается функции, поэтому выводится содержимое arr.
arr = 

arr.push( function() { alert(this) } )

arr() // "a","b",функция

Дополнительные методы

1. Получение первого элемента массива

Пример:

2. Получение последнего элемента массива

Пример:

3. Создание копии массива

Пример:

4. Получение длины массива (количество элементов массива)

Пример:

5. Метод splice() предназначен для изменения содержимого массива. Первый параметр отвечает за количество элементов в массиве, от начала которых нужно отступить. Второй параметр указывает на количество элементов для удаления. Третий параметр используется в случае, когда требуется добавить значение для нового элемента.

Пример:

6. Метод сортировки массивов

Пример:

7. Метод изменения порядка элементов на обратный

Пример:

8. Метод concat() создает новый массив на основе переданных значений и предыдущего массива.

Пример:

9. Метод flat() создаст новый массив на основе вложенных массивов. В параметре метода можно указать число вложений, которые требуется преобразовать в «плоский» массив.

Пример:

Most methods support “thisArg”

Almost all array methods that call functions – like , , , with a notable exception of , accept an optional additional parameter .

That parameter is not explained in the sections above, because it’s rarely used. But for completeness we have to cover it.

Here’s the full syntax of these methods:

The value of parameter becomes for .

For example, here we use a method of object as a filter, and passes the context:

If in the example above we used , then would be called as a standalone function, with , thus leading to an instant error.

A call to can be replaced with , that does the same. The latter is used more often, as it’s a bit easier to understand for most people.

Удаление элементов массива

Методы pop() и shift()

Методы pop() и shift() удаляют последний и первый элемент массива, соответственно:

var myArray = ;
myArray.pop(); // Удаляет элемент "Кейт"
myArray.shift(); // Удаляет элемент "Джек"
console.log(myArray); // Выводит 

Метод splice()

С помощью метода splice() можно удалять или добавлять элементы в массив, при этом точно указывая индекс элементов.

В следующем примере метод splice() добавляет два элемента, начиная с индекса 2 (то есть с третьего элемента):

var fruitArray = ;
fruitArray.splice(2, 0, "дыня", "банан");
console.log(fruitArray); // Выводит 

Первый параметр метода splice() — индекс. Он указывает, на какой позиции нужно добавить/удалить элементы. В нашем примере мы выбрали индекс 2 (со значением «апельсин»).

Второй параметр — количество элементов, которые требуется удалить. Мы указали значение 0, поэтому ничего не удалится.

Следующие параметры — необязательные. Они добавляют в массив новые значения. В нашем случае нужно добавить «дыню» и «банан», начиная с индекса 2.

Чтобы удалить один элемент массива js на индексе 2, нужен следующий код:

var fruitArray = ;
fruitArray.splice(2,1);
console.log(fruitArray); // Prints 

Стоит также сказать о методе slice(), который тоже удаляет значения из массива, но не изменяет оригинальный массив, а возвращает новый.

Склеивание ключей и значений из разных массивов в объект

Если ключи находятся в одном массиве, а значения — в другом, это всё можно «склеить» в один объект с помощью функции

var arrayOpt = ;
var arrayVal = ;

function data_combine(opt, val) {
    if(opt.length != val.length) return false;
    var combined = {};
    for (i=0; i<opt.length; i++) {
        combined] = val;
    }
    return combined;
}

var resultObject = data_combine(arrayOpt, arrayVal);

Полученный объект можно завернуть в массив:

var resultArray = Array(data_combine(arrayOpt, arrayVal));

Иногда встречаются очень интересные случаи, когда в массиве с ключами значения совпадают. Значения таких ключей можно объединить, как в примере ниже:

var a = ;
var b = ;
var r = a.reduce((o,c,i) => {o = o ? o + ", " + b:b; return o;}, {})

В данном примере в объекте массива r ключ options будет иметь одно значение a, b, c.

Можно также создать массив с объектом, где в качестве ключей будет использоваться порядковый номер значения:

var arrayN = ;
var objN = arrayN.reduce(function(acc, cur, i) {
    acc = cur;
    return acc;
}, {});

Пример использования

В следующем примере с использованием JavaScript метода sort() мы рассмотрим как отсортировать массив по алфавиту от a до z, так и от z до a:

// инициализируем переменную, содержащую массив строковых значений 
var arr = ; 

// сортируем массив в порядке следования кодовых символов Unicode
arr.sort()                      // 

// размещаем элементы объекта Array в обратном порядке
var reversed = arr.reverse()    
console.log( reversed );        // 

В следующем примере мы рассмотрим как происходит сортировка массива, который содержит пустые элементы («дыры»):

// инициализируем переменную, содержащую массив строковых значений 
var arr = ; 

// сортируем массив в порядке следования кодовых символов Unicode
arr.sort()                      //  два пустых  значения в конце массива

В следующем примере мы рассмотрим как произвести сортировку массива, содержащего числовые значения в порядке возростания, или убывания значений:

// инициализируем переменную, содержащую массив числовых значений 
var numbers = ; 

// сортируем массив в порядке следования кодовых символов Unicode
numbers.sort()                      // 

Обратите внимание, что числа внутри массива перед сортировкой преобразуются в строковые значения, например, «123» будет следовать перед «4» в соответствии с порядком установленным в Unicode. Для того, чтобы отсортировать числовые значения в порядке возрастания, или убывания нам необходимо использовать функцию, которая задаст критерий сортировки

Рассмотрим следущий пример:

// инициализируем переменную, содержащую массив числовых значений 
var numbers = ; 

// сортируем массив числовых значений в порядке возрастания
numbers.sort(( a, b ) =>  a - b);                      // 

// аналогично без использования стрелочной функции
numbers.sort(function( a, b ) {return a - b});         // 

// сортируем массив числовых значений в порядке убывания
numbers.sort(( a, b ) =>  b - a);                      // 

// аналогично без использования стрелочной функции
numbers.sort(function( a, b ) {return b - a});         // 

В этом примере для сортировки числовых значений внутри массива по возрастанию и по убыванию, мы дополнительно используем аргумент метода sort(), содержащий специальную функцию для сравнения. Она принимает два параметра, которые определяют два текущих сравниваемых значения. Например, при сортировке по возрастанию, сравниваются значения 50 и 4, функция вычисляет 50 — 4, и возвращает положительное значение, в результате чего первое значение будет отсортировано после второго.

Во втором случае, при сортировке массива по убыванию при сравнении значений 50 и 4, функция вычисляет 4 — 50, и возвращает отрицательное значение, в результате чего первое значение будет отсортировано перед вторым.

Обратите внимание, что в этом примере мы использовали стрелочные функции, они позволяют сделать код более читабельным и компактным. В следующем примере мы рассмотри как отсортировать массив объектов по определенному свойству как по алфавиту, так и по числовому значению:

В следующем примере мы рассмотри как отсортировать массив объектов по определенному свойству как по алфавиту, так и по числовому значению:

// инициализируем переменную, содержащую массив объектов 
var items = ;

// сортируем объекты внутри массива по свойству name (по алфавиту) 
items.sort(( a, b ) => a.name > b.name)
console.log( items ); // выводим в консоль результат сортировки 


// сортируем объекты внутри массива по свойству age (по возрастанию числовых значений) 
items.sort(( a, b ) => a.age - b.age);
console.log( items ); // выводим в консоль результат сортировки

JavaScript Array

Сортировка массива с объектами

Еще один момент связан с сортировкой массивов, в которых вместо чисел или строк находятся объекты. У каждого такого объекта может быть одно или несколько строковых свойств и одно или несколько числовых. Для сортировки по каждому из них стоит создавать свою функцию, т.к. передаваемые параметры могут быть разными. Например, мы можем написать такую функцию сортировки массива животных по свойству :

Сортировка массива объектов по свойству age

JavaScript

let sortByAge = (a, b) => a.age > b.age ? 1 : -1;
animals.sort(sortByAge);
console.log(animals);

1
2
3

let sortByAge=(a,b)=>a.age>b.age?1-1;

animals.sort(sortByAge);

console.log(animals);

Результат в консоли браузера нам выдаст список, в котором все животные разместились по возрастанию количества прожитых лет. Учтите, что метод преобразует массив. Теперь элементы имеют другие индексы, чем при объявлении массива.


Рассмотрим еще сортировку по именам. Тут принцип точно такой же, но еще мы добавим функцию , чтобы имена в верхнем и нижнем регистре отсортировывались по алфавитному порядку:

сортировка массива объектов по свойству name

JavaScript

function sortByName(a, b) {
return a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1;
}
animals.sort(sortByName);
console.log(animals);

1
2
3
4
5

functionsortByName(a,b){

returna.name.toLowerCase()>b.name.toLowerCase()?1-1;

}

animals.sort(sortByName);

console.log(animals);

Результат выполнения сортировки в консоли браузера:

Объекты: заголовок имеет значение

Посмотрите как бы выглядела газета в виде объекта:

var newspaper = {

 sports: `ARod Hits Home Run`,
 business: `GE Stock Dips Again`,
 movies: `Superman Is A Flop`

}

А вот так можно визуализировать её:

Объекты — лучший выбор если вы хотите структурировать информацию по названию данных.

Читая газету, мы не обязаны читать её «от корки до корки». Можно начать чтение с любого интересного для вас раздела

Неважно, где именно этот раздел находится в газете, контекст сохраняется. Это и отличает газету от книги, где важна строгая последовательность чтения глав.

Объекты хранят информацию в виде пары ключ-значение. Вот как это выглядит:

key: value

Если хотите начать читать газету с новостей бизнеса, то использовать следует такой ключ:

newspaper

Или такой:

newspaper.business
Это вернёт нам значение:

GE Stock Dips Again

Поэтому когда легче получить доступ к данным на основании их имён (ключа), то вам необходимо хранить эти данные в виде объекта.

Чтение и запись элементов массива

Доступ к элементам массива осуществляется с помощью оператора []. Слева от скобок должна присутствовать ссылка на массив. Внутри скобок должно находиться произвольное выражение, возвращающее неотрицательное целое значение. Этот синтаксис пригоден как для чтения, так и для записи значения элемента массива. Следовательно, допустимы все приведенные далее JavaScript-инструкции:

Напомню, что массивы являются специализированной разновидностью объектов. Квадратные скобки, используемые для доступа к элементам массива, действуют точно так же, как квадратные скобки, используемые для доступа к свойствам объекта. Интерпретатор JavaScript преобразует указанные в скобках числовые индексы в строки — индекс 1 превращается в строку «1» — а затем использует строки как имена свойств.

В преобразовании числовых индексов в строки нет ничего особенного: то же самое можно проделывать с обычными объектами:

Особенность массивов состоит в том, что при использовании имен свойств, которые являются неотрицательными целыми числами, массивы автоматически определяют значение свойства length. Например, выше был создан массив arr с единственным элементом. Затем были присвоены значения его элементам с индексами 1, 2 и 3. В результате этих операций значение свойства length массива изменилось и стало равным 4.

Следует четко отличать индексы в массиве от имен свойств объектов. Все индексы являются именами свойств, но только свойства с именами, представленными целыми числами являются индексами. Все массивы являются объектами, и вы можете добавлять к ним свойства с любыми именами. Однако если вы затрагиваете свойства, которые являются индексами массива, массивы реагируют на это, обновляя значение свойства length при необходимости.

Обратите внимание, что в качестве индексов массивов допускается использовать отрицательные и не целые числа. В этом случае числа преобразуются в строки, которые используются как имена свойств

Язык браузера, его массивы и объекты

Теория программирования не так востребована, как практика программирования на JavaScript. Это обычное положение вещей. Страница, попавшая в браузер, моментально расписывается на дерево DOM и становится источником данных в виде:

  • переменных;
  • массивов;
  • объектов.

Составляя скрипт, программист использует имеющиеся массивы JS, создает собственные массивы, описывает временные переменные и разрабатывает эффективные объекты интерфейса, данных и диалога с посетителем.

Места для истории значений и решений здесь нет, времени на проектирование историй изменений переменных и массивов тоже нет, а для объектов — это делается по мере необходимости.

Результат: веб-ресурс в редких случаях предоставляет «откат», а понятие истории уже «давно есть» в меню браузера в контексте движения по истории страниц: вперед, назад или выбор из списка.

Понятие истории значений на уровне переменных оказывается не востребованным. В стеке и рекурсии — нет надобности, если это явно не вытекает из сути задачи или проектируемого алгоритма.

Работа с массивами JS — метод slice

Можно извлечь часть массива с помощью метода slice(begin):
var arr = ;
var arr2 = arr.slice(0,2) // принимает 2 элемента, начиная с 0
alert(arr2.join(', ')) // "Why, learn"

Обратите внимание, что этот метод не изменяет в JavaScript количество элементов в массиве, а копирует его часть. Можно опустить второй аргумент, чтобы получить все элементы, начиная с определенного индекса:

Можно опустить второй аргумент, чтобы получить все элементы, начиная с определенного индекса:

var arr = ;
var arr2 = arr.slice(1) // принимает все элементы, начиная с 1
alert(arr2.join(', ')) // "learn, JavaScript"

Метод поддерживает отрицательные индексы, так же, как String#slice.

Реальный стек от дерева DOM

Стек — это не всегда массив, который устроен привычным образом. Объекты — это не всегда методы, обеспечивающие доступ к содержанию объекта, но элементы дерева DOM всегда служат источником событий, которые обрабатывает набор функций на JavaScript.

Если представить все потенциальные источники события одним временным срезом в момент возникновения хотя бы одного события, то:

  • может возникнуть только одно событие;
  • может возникнуть два или несколько событий;
  • возможно посещение этой же страницы другим или несколькими посетителями;
  • возможно обращение сервера к клиенту, то есть к браузеру;
  • допустима активность AJAX процесса;
  • возможно, запущен один или несколько таймеров.

Это реальный стек событий серьезного сайта. Реализовать его в качестве массивов или объектов практически невозможно. Это совершенно иной уровень программирования, при котором статичный код, тела функций и методов имеют существенное значение, но ни отладить, ни отследить какой-либо процесс невозможно, если нет четкого представления о состоянии и динамике всей картины.

Проблема ООП и преимущество классического программирования в том-то и состоит, что реальное объектно-ориентированное программирование рекурсивно запускает массу объектов, которые взаимосвязаны друг с другом и могут запускать экземпляры уже работающих (запущенных каким-либо другим объектом или самим собой) объектов.

Разобрать, какой именно экземпляр функционирует по коду функции или метода, нельзя. Код — это статика, а какой именно экземпляр активен — динамика. Активная точка пространства — это статичный код, но уровень рекурсии и состояние актуальных данных — реальная проблема.

JS Tutorial

JS HOMEJS IntroductionJS Where ToJS OutputJS StatementsJS SyntaxJS CommentsJS VariablesJS LetJS ConstJS OperatorsJS ArithmeticJS AssignmentJS Data TypesJS FunctionsJS ObjectsJS EventsJS StringsJS String MethodsJS NumbersJS Number MethodsJS ArraysJS Array MethodsJS Array SortJS Array IterationJS DatesJS Date FormatsJS Date Get MethodsJS Date Set MethodsJS MathJS RandomJS BooleansJS ComparisonsJS ConditionsJS SwitchJS Loop ForJS Loop For InJS Loop For OfJS Loop WhileJS BreakJS Type ConversionJS BitwiseJS RegExpJS ErrorsJS ScopeJS HoistingJS Strict ModeJS this KeywordJS Arrow FunctionJS ClassesJS JSONJS DebuggingJS Style GuideJS Best PracticesJS MistakesJS PerformanceJS Reserved Words

Обратная стопка тарелок: массив в строку

Стек всегда сравнивали со стопкой тарелок: каждая новая тарелка ложится только сверху и брать можно только сверху. Всегда доступна только верхняя тарелка (метод pop) или место над ней (метод push).

JavaScript расширил эту парадигму и предоставил возможность работы со стопкой тарелок как в классическом варианте, так и в обратном: программист может рассматривать начало стопки тарелок как стек через первый элемент. Методы shift и unshift аналогичны pop и push, но работают с первым элементом.

Массив — это набор значений, а методы join и split — это связь массива со строкой. Грань между массивом и переменной отсутствует. Следующий пример показывает это.

Изначально был описан массив aSimple типа «», и у него были реальные три значения. Затем aSimple обратился в переменную — строку символов. Затем в aSimple были записаны три элемента, которые методом join превратились в одну строку, а по методу split — создали новый массив aStr, без использования описания «».

Проверка существования свойства, оператор «in»

В отличие от многих других языков, особенность JavaScript-объектов в том, что можно получить доступ к любому свойству. Даже если свойства не существует – ошибки не будет!

При обращении к свойству, которого нет, возвращается . Это позволяет просто проверить существование свойства:

Также существует специальный оператор для проверки существования свойства в объекте.

Синтаксис оператора:

Пример:

Обратите внимание, что слева от оператора должно быть имя свойства. Обычно это строка в кавычках

Если мы опускаем кавычки, это значит, что мы указываем переменную, в которой находится имя свойства. Например:

Для чего вообще нужен оператор ? Разве недостаточно сравнения с ?

В большинстве случаев прекрасно сработает сравнение с . Но есть особый случай, когда оно не подходит, и нужно использовать .

Это когда свойство существует, но содержит значение :

В примере выше свойство технически существует в объекте. Оператор сработал правильно.

Подобные ситуации случаются очень редко, так как обычно явно не присваивается. Для «неизвестных» или «пустых» свойств мы используем значение . Таким образом, оператор является экзотическим гостем в коде.

Как создать двумерный и многомерный массивы в JavaScript

Готовых функций для создания и работы с двумерными и многомерными массивами в JavaScript нет. Их создание осуществляется посредством того, что каждый элемент первоначального массива в свою очередь тоже должен является массивом.

Например, создадим массив 5×5:

var myArray = new Array(5);
for (var i=0; i

Например, создадим массив 3×2:

var myItems = ,,];
//выведем в консоль содержимое элемента myItems, имеющего индекс 1, а в нём элемента, имеющего индекс 0.
console.log(myItems);

Например, создадим пустой двумерный массив:

var myArray = ];

Например, спроектируем функцию arrayTable, предназначенную для создания табличного массива:

function arrayTable( rows, cols, defaultValue){
  // создаём строки
  var newArray = new Array(rows);
  for(var i=0; i 

Например, создадим трехмерный массив 3×3×3:

var newArray = new Array(3);
  for (var i = 0; i 

Basic operations on arrays

The following explains some basic operations on arrays. And you’ll learn advanced operations such as , , and in the next tutorials.

1) Adding an element to the end of an array

To add an element to the end of an array, you use the method:

Output:

2) Adding an element to the beginning of an array

To add an element to the beginning of an array, you use the method:

Output:

3) Removing an element from the end of an array

To remove an element from the end of an array, you use the method:

Output:

4) Removing an element from the beginning of an array

To remove an element from the beginning of an array, you use the method:

Output:

5) Finding an index of an element in the array

To find the index of an element, you use the method:

6) Check if an value is an array

Циклы перебора элементов массива

1. Цикл for является «классикой» для перебора элементов массива и используется в JavaScript с начала его создания.

Пример:

2. Цикл for..in – так как массивы в JS это объекты, имеется возможность использовать данный цикл для переборов объектов.

Пример:

Не рекомендуется использовать этот метод перебора поскольку в результате можно получить не только элементы массива, но и дополнительные свойства объекта.

3. Цикл for..of – данный цикл возвращает значение элементов, но при этом он не предоставляет доступ к номерам элементов. Это является главным его недостатком.

Пример:

После циклов давайте разберем методы, которые имеют массивы перебора элементов.

Наследование

Чтобы понять разницу между JavaScript работой с объектами и массивами, рассмотрим принцип наследования.

Каждый объект содержит ссылку на родительский (прототип) объект. При вызове метода, JavaScript начнет искать его в объекте, с которым вы работаете. Если метод не будет найден, то начнется поиска прототипа. Поиск осуществляется по всей цепочке прототипов до тех пор, пока не будет найден метод или достигнут корневой объект.

Посмотреть пример

В примере выше создается объект person с собственным параметром name. При вызове метода toString сначала проверяется объект person, за которым следует проверка его прототипа (Object.prototype). Используется логика прототипа, которая обычно возвращает .

Далее, в самом объекте person создайте метод toString, который мы и будем использовать при запуске toString.

Разница между объектами и массивами

У массивов есть существенные отличия от традиционных JavaScript объектов. Причина кроется в объекте Array.prototype, в котором представлены все методы, присущие массивам. Каждый новый массив наследует эти методы из Array.prototype.

Важно отметить, что значением свойства prototype в Array.prototype является Object.prototype. Это означает, что массивы – это просто объекты, но с дополнительными методами

Нет ничего такого, что делает объект, но не смог бы сделать массив.

Посмотреть пример

Неиндексированные свойства

Так как массивы – это просто объекты, к ним можно применять неиндексированные свойства. Обычно это первое, что удивляет. В примере ниже я устанавливаю два неиндексированных свойства с названиями sorted и authored by массиву groceries.

Примечание: как и в объектах, здесь поддерживается как точка, так и скобка.

Посмотреть пример

length

Свойство массива length также часто сбивает с толку. Часто это свойство путают с подсчетом элементов в массиве. Однако значение length в числовом выражении больше самого большого индекса массива. Из-за этого неиндексированные свойства не влияют на длину массива, как показано в примере.

Еще одна ситуация, в которой length может ввести в заблуждение, заключается в том, что мы пытаемся добавить элемент с индексом больше текущего значения массива length

Обратите внимание, что в примере length у массива прыгнул с 2 до 10 сразу после того, как добавил третий элемент в массив при индексе 9

Когда значение свойства length изменяется, каждый элемент с индексом выше нового значения length подлежит удалению.

Примечание:

Чтобы получить корректное значение length, можно использовать Object.keys(groceries).length. Учтите, что это также включает неиндексированные свойства до тех пор, пока вы не определите их как не перечисляемые. То есть:

Object.defineProperty(groceries, "sorted", {
   value: false,
   enumerable: false,
   configurable: true,
   writable: true
});

Так как же быть?

Если нужно создать коллекцию свойств различного типа, используйте JavaScript создание объектов. Во всех других случаях можно пользоваться массивом.

Вывод массива с объектами

Разница между обычным массивом и массивом объектов не столь уж велика. Просто добавляется, как правило, точечный синтаксис при обращении к свойствам каждого объекта внутри массива. Например, мы можем сформировать нумерованный список при выводе информации о каждом объекте массива:

Вывод информации из массива объектов

JavaScript

let animals = ;
document.write(‘<ol start=»0″>’);
animals.forEach( animal => {
document.write(`<li>${animal.type} <span style=»color: #1a55cc»>${animal.name}</span>
is ${animal.age} years old.</li>`);
});
document.write(‘<ol>’);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

let animals=

{name’Vasya’,type’Cat’,age4},

{name’Murka’,type’Cat’,age1.5},

{name’Varna’,type’Turtle’,age21},

{name’Kesha’,type’Parrot’,age3},

{name’Nayda’,type’Dog’,age2.5},

{name’Pufic’,type’Humster’,age2.5},

{name’Randy’,type’dog’,age12},

;

document.write(‘<ol start=»0″>’);

animals.forEach(animal=>{

document.write(`<li>${animal.type}<span style=»color: #1a55cc»>${animal.name}<span>

is${animal.age}years old.<li>`);

});

document.write(‘<ol>’);

Нумерация списка начинается с нуля, для того чтобы сразу был понятен реальный индекс элемента в массиве. Имя животного выводится, как , его вид — как , а его возраст — как . Имя выделено другим цветом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector