Python.v.JavaScript

JavaScript for Pythonistas. Python for JavaScripters

Словари / объекты

Стандартная структура для хранения данных с возможностью обращения по произвольному ключу (отображение) в Python называется dict (dictionary, словарь), а в JavaScript — object (объект).

Python Javascript
Создание словарей / объектов #
my_dict = {'a': 10, 'b': 20}
my_dict['a']
10
my_dict.a
Exception: AttributeError
'dict' object has no attribute 'a'
var my_obj = {a: 10, b: 20};my_obj['a'];
10
my_obj.a;
10

Обращение через точку и через квадратные скобки работает одинаково.


var my_obj = {'long key': 'some value', 
               short_key: 'other value'}my_obj['long key'];
some value
my_obj['short_key'];
other value
my_obj.short_key;
other value
Модификация значения в словаре / объекте #
my_dict = {'a': 10, 'b': 20}
my_dict['a'] = 'hello'
my_dict['a']
'hello'
var my_obj = {a: 10, b: 20};
my_obj['a'] = 'hello';my_obj['a'];
hello

var my_obj = {a: 10, b: 20};
my_obj.a = 'hello';my_obj['a'];
hello

Два способа обращения (через квадратные скобки и через точку) дают один и тот же элемент.

Нестроковые ключи #
my_dict = {}
my_dict[5] = 'hello'
my_dict['5'] = 'world'
my_dict
{5: 'hello', '5': 'world'}
var my_obj = {};
my_obj[5] = 'hello';
my_obj['5'] = 'world';my_obj;
{ '5': 'world' }
my_obj[ ['5'] ];
world

Ключами в объектах JavaScript могут быть только строки. Любой другой ключ автоматически будет конвертирован в строку.

Проверка наличия объекта с заданным ключом #
my_dict = {'a': 10, 'b': 20}
'a' in my_dict
True
my_obj = {a: 10, b: 20};'a' in my_obj;
true
Обращение к записи с несуществующим ключом #
my_dict = {'a': 10, 'b': 20}
my_dict['c']
Exception: KeyError
'c'
my_dict.get('c')
None
my_dict.get('c', 'Nothing')
'Nothing'
my_obj = {'a': 10, 'b': 20};my_obj['c'];
undefined
my_obj.c;
undefined
© Ilya V. Schurov and contributors, 2017
Licenses: CC BY (text), MIT (code).
contribute on github