【发布时间】:2017-03-07 02:46:02
【问题描述】:
我需要将对象数组作为更大数据结构的一部分传递给 php 页面。我正在尝试在 JavaScript 中复制此结构并通过 json 传递它。
php 中的数组键已设置为我稍后需要的名称。
我知道 JavaScript 不使用关联数组,并且 JavaScript 中的数组本质上是对象,但文档建议我应该能够使用命名键。
如果是这种情况,我还应该能够通过使用不同的语法将变量用作命名键。
那么有人可以告诉我我做错了什么吗?
示例 1:数字键(有效)
var dataTargets = [];
var obj = {
'test': 'test'
};
dataTargets["0"] = obj;
alert(JSON.stringify(dataTargets));
示例 2:命名键(失败)
var dataTargets = [];
var obj = {
'test': 'test'
};
dataTargets["test"] = obj;
alert(JSON.stringify(dataTargets));
//outputs []
示例 3:变量键(失败)
var dataTargets = [];
var dtname = "test";
var obj = {
'test': 'test'
};
dataTargets[dtname] = obj;
alert(JSON.stringify(dataTargets));
//outputs []
【问题讨论】:
-
请问为什么
JSON.stringify()返回一个没有设置元素的数组?预期的结果是什么? -
你可以试试:dataTargets = {}; dataTargets['test'] = obj;
标签: javascript arrays object key named