Как сделать ассоциативный массив / хэширование в JavaScript

Проверьте декодер @property .

536
задан Davide Cannizzo 25 July 2018 в 18:43
поделиться

5 ответов

Use JavaScript objects as associative arrays.

Associative Array: In simple words associative arrays use Strings instead of Integer numbers as index.

Create an object with

var dictionary = {};

Javascript allows you to add properties to objects by using the following syntax:

Object.yourProperty = value;

An alternate syntax for the same is:

Object["yourProperty"] = value;

If you can also create key to value object maps with the following syntax

var point = { x:3, y:2 };

point["x"] // returns 3
point.y // returns 2

You can iterate through an associative array using the for..in loop construct as follows

for(var key in Object.keys(dict)){
  var value = dict[key];
  /* use key/value for intended purpose */
}
535
ответ дан 22 November 2019 в 22:20
поделиться

Если у Вас нет определенной причины не к, просто используйте обычный объект. На свойства объектов в JavaScript можно сослаться с помощью синтаксиса стиля хеш-таблицы:

var hashtable = {};
hashtable.foo = "bar";
hashtable['bar'] = "foo";

И foo и bar на элементы можно теперь тогда сослаться как:

hashtable['foo'];
hashtable['bar'];
// or
hashtable.foo;
hashtable.bar;

, Конечно, это действительно означает, что Ваши ключи должны быть строками. Если они не строки, они преобразовываются внутренне в строки, таким образом, это может все еще работать, YMMV.

130
ответ дан rogerdpack 25 July 2018 в 18:43
поделиться

Так как каждый объект в JS ведет себя как - и обычно реализуется как - хеш-таблица, я просто иду с этим...

var hashSweetHashTable = {};
48
ответ дан Shog9 25 July 2018 в 18:43
поделиться
var associativeArray = {};
associativeArray["one"] = "First";
associativeArray["two"] = "Second";
associativeArray["three"] = "Third";

Если вы переходите с объектно-ориентированного языка, вам следует прочитать эту статью .

428
ответ дан 22 November 2019 в 22:20
поделиться

Если вам нужно, чтобы ваши ключи были любыми объектами, а не только строками, то вы можете использовать мой jshashtable.

18
ответ дан 22 November 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: