Памятка. Объекты и массивы объектов в Яваскрипте
Пиша — учишься.
Очень кратко
[...] — массив
{...} — объект
{ [...], [...], [...] } — объект хранит массивы
[ {...}, {...}, {...} ] — массив хранит объекты
[ [...], [...], [...] ] — двумерный массив
[ [{...}, {...}], [{...}, {...}], [{...}, {...}] ] — двумерный массив объектов
И так далее рекурсивно.
Приемы работы
Проверить наличие ключа в объекте и удалить ключ объекта.
if ("ethanol" in chemicals)
delete chemicals.ethanol;
В конец массива можно пушнуть элемент или попнуть оттуда.
var arra = [];
arra.push("ficker");
arra.push("popinjay");
// arra[ "ficker", "popinjay" ];
arra.pop(); // popinjay
В начало массива элемент можно шифтнуть или уншифтнуть оттуда.
var myau = [];
arra.shift("cat");
arra.shift("dog");
// arra[ "dog", "shift" ];
arra.unshift(); // dog
Аналогично в массив можно пушнуть или шифтнуть объект.
var fish = [];
fish.push(
{taxon: "Gobiidae", weigth: 17, region: "Moscow"}
);
В массив можно пушнуть объект содержащий массив.
var frogs = [];
frogs.push(
{color: "violet", dimensions: [12, 14, 10, 27, 8, 14]}
);
Пройтись по объектам из массива.
for (var item in array_of_objects)
// item - текущий объект из массива; есть ли у него такое-то свойство-ключ?
if ( desired_key in item)
alert( item.desired_key );
Заполнить массив объектов вычисленными значениями.
var cloud = [];
var N = 128, i=0;
while(i++ < N)
cloud.push( {x: Math.random(), y: math.random(), id: i} );
Примеры
Массив:
var hex = [1, 2, 3, 4, 5, 6, 7, 8];
alert( hex[4] );
Объект:
var flex = {
x: 10,
y: 50,
name: "point"
};
var hrex = new Object( {0:"one", 1:"two", third : "three", fourth : "four"} );
alert( flex.x );
alert( flex["y"] );
alert( hrex[third] );
Пустой объект, который заполняется позже:
var plex = new Object();
plex["road"] = "M-86";
plex["speed"] = 120;
Объект с массивом:
var hrex = {
name: "Petr",
coins: [1, 2, 3, 4, 5, 6, 7, 8],
slaves: ["John", "Abram", "Rosa"]
}
alert( hrex[slaves][1] );
Массив объектов:
var abra = [
{cadabra: 17, place: "town"},
{cadabra: 23, place: "lake"},
{cadabra: 66, place: "street"}
];
Дальнейшее чтиво
Все способы перебора массива в JavaScript
Полезные методы массивов и объектов в JavaScript
Выразительный JavaScript: Структуры данных: объекты и массивы
Руководство по JavaScript, часть 2: стиль кода и структура программ
Руководство по JavaScript, часть 3: переменные, типы данных, выражения, объекты
Стрелочные функции в JavaScript: зачем они нужны, как с ними обращаться, когда ими стоит пользоваться, а когда — нет
Функции высшего порядка в JavaScript