有没有其他方法可以创建没有JSON的JavaScript关联数组?

时间:2015-11-20 15:55:56

标签: javascript

我想知道是否有另一种方法可以在JavaScript中使用关联数组而不必使用JSON。

现在我知道了:

var json = '{ "color": [ "red", "blue" ], "name": "Ionut" }';

还有另一种声明关联数组的方法吗?就像在PHP中一样。

3 个答案:

答案 0 :(得分:3)

JSON是一种基于文本的数据格式,与JavaScript只是切向相关。

通过对象及其属性在JavaScript中实现关联的类数组功能。

这种方法的局限性在于键必须是字符串(或ES2015中的符号)。

因此,JavaScript中关联数组的语法是:

var a = { 
  'key1': 'value1', 
  'key2': 'value2', 
  /* ... */ 
};

在JavaScript中实现类似功能的唯一其他方法是更现代的MapWeakMap,它们扩展了允许对象作为键的功能。 WeakMap键不会阻止用作键的对象的垃圾收集。

答案 1 :(得分:2)

是的,只需省略外部引号:

var foo = { "color": [ "red", "blue" ], "name": "Ionut" };

// access
var color = foo['color'];

// modify
foo['name'] = 'Better name';

// add
foo['bar'] = 'baz';

更长的解释:JSON是一种序列化格式。它描述了如何将JavaScript对象转换为字符串并返回。

该标准围绕普通JavaScript对象发展,允许模拟关联数组。

答案 2 :(得分:2)

这样的东西?

var json = {};
json[ "color" ] = [];
json[ "color" ].push( "red" );
json[ "color" ].push( "blue" );
// or json[ "color" ] = [ "red", "blue" ];
json[ "name" ] = "Ionut";