понедельник, 24 июля 2017 г.

Учим Java Script. 17. Ассоциативные массивы

index.html


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="style.css">
<script src="1.js" defer></script>
</head>
<body>
<p id="out"></p>
</body>
</html>

1.js
// Обычные массивы. Значения хранятся под номерами.
// var m=[4, 12, 'hello'];
// console.log(m[1]); // 12

// Ассоциативные массивы. Значения хранятся под именем.
var m = {}; // пустой массив

// Применяется для JSON-объектов. Ключ-значение.
var n = {
"one" : 12,
"hello" : "world",
"prim" : 2000,
"double key" : 777 // здесь ключ содержит пробел и обратиться через точку к значению мы не можем
};
console.log(n); // Object { one: 12, hello: "world", prim: 2000 }
// console.log(n['prim']); // обращаемся к элементу массива через ключ

n.one = 9000; // так можно изменить значение
console.log(n.one); // новый способ обращения через точку

// console.log(n.double key); // ошибка
console.log(n['double key']); // 777

var ppp = "hello"; // в массиве есть элемент с таким ключом.
// Можно ли обратится к элементу массива через переменную?
// n.ppp // ошибка, но
console.log(n[ppp]); // world

/* В ассоциативных массивах не применимо понятие сортировки. Нельзя выстроить элементы по ключу. В ассоциативных массивах нет порядка вывода.
Мы сами определяем порядок сортировки: по алфавиту, по возрастанию или другим признакам.

Понятие длины массива есть. Но перебрать его свойстовм length мы не можем.
*/

// Запустим цикл для перебора ассоциативного массива. in - обязательно, n - наш массив, key может называться по-другому
var out = document.getElementById('out');
for(var key in n) {
out.innerHTML += key + '----' + n[key] + '<br>'; // выводит все ключи: one hello prim double key
// Зная ключи, мы можем вытащить любое значение.
}

/*
one----9000
hello----world
prim----2000
double key----777
*/

Комментариев нет:

Отправить комментарий