gpt4 book ai didi

javascript - 将新属性动态添加到 Node 中的现有 JSON 数组

转载 作者:搜寻专家 更新时间:2023-10-31 22:56:49 25 4
gpt4 key购买 nike

我需要添加一个当前 JSON 中不存在的属性。 json 对象如下所示。

var jsonObj = {
"result" : "OK",
"data" : []
};

我想在“数据”中添加温度。我可以像下面那样做。

jsonObj.data.push( {temperature : {}} );

然后,我想在“温度”中添加“家”、“工作”。结果如下所示。

{
"result" : "OK",
"data" : [
{ "temperature" : {
"home" : 24,
"work" : 20 } }
]
};

我该怎么做?我成功地在“数据”中插入“温度”,但无法在温度中添加“家庭”和“工作”。 'temperature' 中可能还有更多内容,因此需要用 {} 括起来。

最佳答案

这个怎么样?

var temperature = { temperature: { home: 24, work: 20 }};

jsonObj.data.push(temperature);

根据你的问题结构,我无法判断分两步完成是否重要,但你可以稍后通过索引到数组中添加 home 和 work 属性,如下所示:

jsonObj.data.push({ temperature: { }});

jsonObj.data[0].temperature.home = 24;
jsonObj.data[0].temperature.work = 20;

但是,这不是一个好主意,因为它依赖于数组索引来查找温度对象。如果这是一项要求,最好执行类似遍历 data 数组的操作以最终找到您感兴趣的对象。

编辑:

循环定位温度对象的示例如下所示:

for (var i = 0; i < jsonObj.data.length; i++) { 
if (jsonObj.data[i].temperature) {
break;
}
}

jsonObj.data[i].temperature.home = 24;
jsonObj.data[i].temperature.work = 20;

编辑:

如果在开发时不知道您感兴趣的特定属性,您可以使用括号语法来改变它:

for (var i = 0; i < jsonObj.data.length; i++) { 
if (jsonObj.data[i]['temperature']) {
break;
}
}

jsonObj.data[i]['temperature'].home = 24;
jsonObj.data[i]['temperature'].work = 20;

这意味着您可以在那里使用变量而不是对其进行硬编码:

var target = 'temperature';

for (var i = 0; i < jsonObj.data.length; i++) {
if (jsonObj.data[i][target]) {
break;
}
}

jsonObj.data[i][target].home = 24;
jsonObj.data[i][target].work = 20;

关于javascript - 将新属性动态添加到 Node 中的现有 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23208674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com