in
, JSONКроме обычных массивов, в которых ключем служит целое число от 0 до array.length -1
, существуют ассоциативные массивы, ключем в котором может быть любой другой
тип данных; обычно используется строка. В JavaScript нет специального типа данных для ассоциативных массивов - вместо этого ассоциативные
массивы представлены объектами (Object
):
var person = {
name: "Ivan",
surname: "Ivanovv",
"fatherName": "Petrovich",
}
typeof person
Нет разницы, определять ключи литерально или через строку (в кавычках "fatherName"
).
Для обращения к элементам по ключу используются следующие нотации:
person.fatherName
person["name"]
Обратите внимание, что person.fatherName
работает так же как и person["name"]
, несмотря на то, что определены по разному.
Для обращения через ключ в переменной используется нотация с квадратными скобками:
var key = "surname";
person[key]
person.key
Если просто написать person.key
, то JavaScript будет искать ключ key
литерально, а не по значению переменной key
("surname")
Вы можете определить новый элемент массива просто присвоив ему значение:
person.age = 98;
person
Также можно создавать массив через конструктор Object:
var a = new Object();
a.name = "Petr"
a.surname = "Petrov";
a["age"] = 17;
in
Ключевое слово in
используется для двух задач:
javascript
"fatherName" in a
"age" in person
for (var key in arr)
для перебора всех элементов ассоциативного массива
javascript
for (var key in person){
console.log(key+": "+person[key]);
}
Нарисовать HTML таблицу из двух колонок, в которой слева будут ключи, а справа - значения:
name | Ivan |
---|---|
surname | Ivanovv |
fatherName | Petrovich |