我从我编写的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(;
在console.log中:
toAppend:dummyData;这就是预期的行为
谢谢!
originalOrder
是一个对象,因此,要获得键的数量(即"对象的长度"(,您需要:
Object.keys(originalOrder).length
要添加具有vartoAppend
值的密钥,您需要写入:
originalOrder[toAppend] = lunghezza
要使用变量值作为对象的键,可以在javascript中使用方括号。
const obj = {
"hello": "world"
};
const key = "value";
obj[key] = "any value";
console.log(obj)
将打印
{
"hello": "world",
"value": "any value"
}
此外,不能在对象上使用length
属性。但是,您可以获取对象的关键帧列表,然后获取长度。
console.log(Object.keys(obj).length);
将打印
2
希望这能帮助