我想知道是否有另一种方法可以在JavaScript中使用关联数组而不必使用JSON。
现在我知道了:
var json = '{ "color": [ "red", "blue" ], "name": "Ionut" }';
还有另一种声明关联数组的方法吗?就像在PHP中一样。
答案 0 :(得分:3)
JSON是一种基于文本的数据格式,与JavaScript只是切向相关。
通过对象及其属性在JavaScript中实现关联的类数组功能。
这种方法的局限性在于键必须是字符串(或ES2015中的符号)。
因此,JavaScript中关联数组的语法是:
var a = {
'key1': 'value1',
'key2': 'value2',
/* ... */
};
在JavaScript中实现类似功能的唯一其他方法是更现代的Map
和WeakMap
,它们扩展了允许对象作为键的功能。 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";