JavaScript для детей. Самоучитель по программированию



Pdf көрінісі
бет31/43
Дата20.07.2022
өлшемі6,41 Mb.
#37806
1   ...   27   28   29   30   31   32   33   34   ...   43

Часть I. Основы
Массив друзей
Давайте рассмотрим более сложный пример — массив объектов со све-
дениями о друзьях, где в каждый из объектов вложено по еще одному 
массиву. Сначала создадим объекты, а затем поместим их в массив.
var anna = { name: "Анна", age: 11, luckyNumbers: [2, 4, 8, 16] };
var dave = { name: "Дэйв", age: 5, luckyNumbers: [3, 9, 40] };
var kate = { name: "Кейт", age: 9, luckyNumbers: [1, 2, 3] };
Мы создали три объекта, сохранив их в переменных 
anna, dave 
и 
kate. У каждого из этих объектов есть по три свойства: name, age 
и 
luckyNumbers. Каждому ключу name соответствует строковое значе-
ние, ключу 
age — числовое, а ключу luckyNumbers — массив, содержа-
щий несколько чисел.
Теперь создадим массив друзей:
var friends = [anna, dave, kate];
Итак, в переменной 
friends находится массив с тремя элементами
anna, dave и kate (каждый из них является объектом). Мы можем полу-
чить любой из объектов по его индексу в массиве:
friends[1];

name: "
Дэйв
", 
age: 
5

luckyNumbers: 
Array[3] }
Здесь мы извлекли из массива второй объект, 
dave (по индексу 1). 
Вместо массива 
luckyNumbers Chrome напечатал Array[3], что озна-
чает «это массив с тремя элементами» (можно изучить содержимое 
этого массива с помощью Chrome, см. раздел «Исследование объектов 
в консоли» на с. 77.) Также мы можем получить значение, хранящееся 
в объекте, указав индекс объекта в квадратных скобках, поставив точку 
и написав соответствующий ключ: 
friends[2].name
"
Кейт
"
Этот код запрашивает элемент по индексу 2 (что соответствует пере-
менной 
kate), а затем — свойство этого объекта, хранящееся по ключу 
"name" (это "Кейт"). Можно даже получить значение из массива, находя-
щегося в объекте, который, в свою очередь, находится в массиве 
friends:
Lucky 
numbers
— 
счастливые 
числа
Friends
— 
друзья
Array
— 
массив


4. Объекты
77
friends[0].luckyNumbers[1];
4
Использованные в этом примере индексы показаны на рис. 4.2. 
friends[0] — это элемент по индексу 0 из массива friends, то есть объ-
ект 
anna.friends[0].luckyNumbers — это массив [2, 4, 8, 16] из объ-
екта 
anna. И наконец, friends[0].luckyNumbers[1] — это значение 
по индексу 1 из массива 
luckyNumbers — то есть число 4.
Исследование объектов в консоли
Chrome позволяет изучать содержимое объектов, показанных в консоли. 
Например, если вы введете
friends[1];
Chrome отобразит то, что показано на рис. 4.3.
var friends = [
anna
, dave, kate];
friends[0]
{ name: "Аннa", age: 11, luckyNumbers: 
[2, 
4
, 8, 16]
};
friends[0].luckyNumbers
friends[0].luckyNumbers[1]
Рис. 4.2. Доступ ко вложенным значениям
Рис. 4.3. Отображение объекта в интерпретаторе Chrome


78
Часть I. Основы
Треугольник слева обозначает, что объект можно раскрыть. Для этого 
кликните мышкой по объекту, и увидите то, что показано на рис. 4.4.
Рис. 4.4. Раскрытие объекта
Массив 
luckyNumbers также можно раскрыть, кликнув по нему 
(рис. 4.5). 
Рис. 4.5. Раскрытие вложенного в объект массива
Не беспокойтесь о свойствах с названием 
__proto __, они отно-
сятся к прототипу объекта. Мы поговорим о прототипах позже, в главе 12. 
Обратите внимание, что помимо элементов массива интерпретатор 
показывает его свойство 
length.
Также вы можете просмотреть массив 
friends целиком и раскрыть 
каждый его элемент, как показано на рис. 4.6.
Рис. 4.6. Все три объекта из массива 
friends, как отображает их интерпретатор Chrome
Length
— 
длина


4. Объекты
79
Что полезного можно сделать с объектами
Теперь, когда вам известны разные способы создания объектов и добав-
ления к ним свойств, давайте применим эти знания на практике, введя 
несколько простых программ.
Учет долгов
Предположим, вы решили открыть банк. Вы одолжили друзьям денег 
и теперь думаете, как вести учет того, кто и сколько вам должен.
Можно использовать объект как способ связать строку с числом. 
Строкой в нашем случае будет имя друга, а числом — сумма, которую 
вам должны:

var owedMoney = {};

owedMoney["Джимми"] = 5;

owedMoney["Анна"] = 7;

owedMoney["Джимми"];
5

owedMoney["Элис"];
undefined
В строке 

мы создали пустой массив 
owedMoney. 
В строке 

мы присвоили ключу 
"Джимми" значение 5, 
а в строке 

присвоили значение 7 ключу 
"Анна". 
В строке 

, запросив значение, связанное с ключом 
"Джимми", мы получили 5. Затем в строке 

, пытаясь 
узнать значение, связанное с ключом 
"Элис", мы полу-
чили ответ 
undefi ned, поскольку такой ключ не задан.
Теперь представим, что Джимми занял у вас 
еще немного денег (скажем, 3 доллара). Пора 
обновить данные в нашем объекте, добавив 3 
к долгу Джимми — используем для этого оператор 
«плюс равно» 
(+=), речь о котором шла во второй 
главе. 
owedMoney["Джимми"] += 3;
owedMoney["Джимми"];
8
Это примерно то же самое, что и 
owedMoney["Джимми"] = 
owedMoney["Джимми"] + 3. Также можно посмотреть на объект цели-
ком, чтобы выяснить, сколько денег задолжал каждый из друзей:
Owed money 
— 
одолженная 
сумма денег


80

Достарыңызбен бөлісу:
1   ...   27   28   29   30   31   32   33   34   ...   43




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет