Один из способов – хранить корреляции в массиве, используя объекты со свойствами >name
и >value
. Однако поиск корреляций в массиве будет довольно громоздким: нужно будет пройтись по всему массиву, чтобы найти объект с нужным именем. Можно было бы обернуть этот процесс в функцию, но код пришлось бы писать всё равно, и компьютер выполнял бы больше работы, чем необходимо.
Способ лучше – использовать свойства объектов с именами событий. Мы можем использовать квадратные скобки для создания и чтения свойств и оператор >in
для проверки существования свойства.
>var map = {};
>function storePhi(event, phi) {
> map[event] = phi;
>}
>storePhi("пицца", 0.069);
>storePhi("тронул дерево", -0.081);
>console.log("пицца" in map);
>// → true
>console.log(map["тронул дерево"]);
>// → -0.081
Карта (map) – способ связать значения из одной области (в данном случае – названия событий) со значениями в другой (в нашем случае – коэффициенты ϕ).
С таким использованием объектов есть пара проблем – мы обсудим их в главе 6, но пока волноваться не будем.
Что, если нам надо собрать все события, для которых сохранены коэффициенты? Они не создают предсказуемую последовательность, как было бы в массиве, поэтому цикл >for
использовать не получится. JavaScript предлагает конструкцию цикла специально для обхода всех свойств объекта. Она похожа на цикл >for
, но использует команду >in
.
>for (var event in map)
> console.log("Корреляция для '" + event
> "' получается " + map[event]);
>// → Корреляция для 'пицца' получается 0.069
>// → Корреляция для 'тронул дерево' получается -0.081