Неупорядоченность объектов в JavaScript

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

Для примера рассмотрим вот такой объект:

let obj = {1: 'a', 2: 'b', 3: 'c'}; console.log(obj[1]); // выведет 'a' console.log(obj[2]); // выведет 'b' console.log(obj[3]); // выведет 'c'

Если переставить элементы этого объекта в произвольном порядке (конечно же, вместе с их ключами), то ничего от этого в работе нашего скрипта не изменится:

let obj = {3: 'c', 1: 'a', 2: 'b'}; console.log(obj[1]); // выведет 'a' console.log(obj[2]); // выведет 'b' console.log(obj[3]); // выведет 'c'

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

let obj = {7: 'a', 50: 'b', 23: 'c'};

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

enru