【发布时间】:2020-04-07 08:41:46
【问题描述】:
我从我编写的 API 中得到一个 json。此 json 包含一些值,其中一个应附加到另一个 json。 将数据附加到的 json 如下:
originalOrder = {
"nome": 1,
"cognome": 2,
"mail": 3,
"telefono": 4,
"cf": 5,
"data": 6,
"ora": 7,
"cellit": 8,
"cellex": 9
};
我需要追加的数据是:
var toAppend = data.name;
如果我回显 toAppend 值,它会显示正确的值。例如说 toAppend 与 dummyData 相呼应。我希望 json 在最后:
originalOrder = {
"nome": 1,
"cognome": 2,
"mail": 3,
"telefono": 4,
"cf": 5,
"data": 6,
"ora": 7,
"cellit": 8,
"cellex": 9,
"dummyData": 10
};
所以我也计算了数组的长度:
var lunghezza = parseInt(originalOrder.length);
lunghezza = lunghezza +2;
然后我将新项目添加到数组中:
originalOrder.toAppend=lunghezza;
但数组最终是这样的:
originalOrder = {
"nome": 1,
"cognome": 2,
"mail": 3,
"telefono": 4,
"cf": 5,
"data": 6,
"ora": 7,
"cellit": 8,
"cellex": 9,
"toAppend": NaN
};
所以我有两个问题:
- 我得到的是变量名而不是变量值
- 我得到的不是数字而是 10(我也尝试使用 parseInt 强制它,但似乎没有运气)
我在这里做错了什么?
编辑: 如果我这样做了
var toAppend = data.nome; console.log('toAppend: '+toAppend);
在控制台日志中:
toAppend: dummyData; 这是预期的行为
谢谢!
【问题讨论】:
-
originalOrder 是一个对象(字典)。对于对象,如果你使用 .length ,它将返回 undefined ,如果你将数字添加到 undefined ,它将始终返回 NaN。
-
你能显示
console.log为dummyData显示的内容吗?如果您要添加一个名为voce的属性,您到底想添加什么,您是否希望出现不同的键?此外,originalOrder是一个对象,而不是一个数组。它没有length属性。如果要统计对象中的键,请使用Object.keys(originalOrder).length -
一旦你纠正了前面 cmets 中描述的长度问题,
originalOrder[toAppend]=lunghezza; -
@casraf 查看我的编辑
-
试试@Nick 和我一起提出的建议,我认为这会让你得到你想要达到的目标。
标签: javascript jquery arrays json