Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在JSON数组中推送对象_Javascript_Arrays_Json - Fatal编程技术网

Javascript 在JSON数组中推送对象

Javascript 在JSON数组中推送对象,javascript,arrays,json,Javascript,Arrays,Json,我需要为我的数据数组推送一个新ID。如果我尝试推入数据,它会创建一个以上的对象,但不会为每个对象添加到数组中 数据: [{"devices":{"dID":"TLSM01"},"uuid":"e863c776-f939-4761-bbce-bf0501b42ef7"}, {"devices":{"dID":"TLSM01"},"uuid":"5a0cd70d-891d-48d8-b205-e92e828ac445"}] 需要添加数据: {"EntityID":"12458412548"}

我需要为我的数据数组推送一个新ID。如果我尝试推入数据,它会创建一个以上的对象,但不会为每个对象添加到数组中

数据:

[{"devices":{"dID":"TLSM01"},"uuid":"e863c776-f939-4761-bbce-bf0501b42ef7"},
 {"devices":{"dID":"TLSM01"},"uuid":"5a0cd70d-891d-48d8-b205-e92e828ac445"}]
需要添加数据:

{"EntityID":"12458412548"}
最终结果:

[{"devices":{"dID":"TLSM01","EntityID":"12458412548"},"uuid":"e863c776-f939-4761-bbce-bf0501b42ef7"},
 {"devices":{"dID":"TLSM01","EntityID":"12458412548"},"uuid":"5a0cd70d-891d-48d8-b205-e92e828ac445"}]
代码:

var数据=[{
“设备”:{
“dID”:“TLSM01”
},
“uuid”:“e863c776-f939-4761-bbce-bf0501b42ef7”
}, {
“设备”:{
“dID”:“TLSM01”
},
“uuid”:“5a0cd70d-891d-48d8-b205-e92e828ac445”
}]
数据推送({
“EntityID”:“测试”
});

控制台日志(数据)
数据
是包含对象的数组。如果要向每个对象添加属性,则必须迭代数组

您需要将新属性添加到对象
devices
,该对象不是数组,因此无法使用
.push()

var data=[{“设备”:{“dID”:“TLSM01”},“uuid”:“e863c776-f939-4761-bbce-bf0501b42ef7},{“设备”:{“dID”:“TLSM01”},“uuid”:“5a0cd70d-891d-48d8-b205-e92e828ac445”};
data.forEach(d=>d.devices['EntityID']=“test”);
控制台日志(数据)如果您的“最终结果”是您想要实现的结果,那么您不想推送任何东西。您只是在数组中已经存在的条目上设置一个新属性。因此,循环并执行以下操作:

data.forEach(function(entry) {
    entry.EntityID = "12458412548";
});
(或用于
循环的简单

如果使用ES2015+语法,则可以使用箭头函数:

data.forEach(entry => entry.EntityID = "12458412548");
…或循环的

for (const entry of data) {
    entry.EntityID = "12458412548";
}

var jsonObj=[{“设备”:{“dID”:“TLSM01”},“uuid”:“e863c776-f939-4761-bbce-bf0501b42ef7”},
{“设备”:{“dID”:“TLSM01”},“uuid”:“5a0cd70d-891d-48d8-b205-e92e828ac445”}];
jsonObj.map(item=>item.devices[“EntityID”]=“12458412548”);

console.log(jsonObj)
JSON是用于数据交换的文本表示法。当您将值推入该数组时,它不是JSON。它只是一个数组。它可能从来都不是JSON。您使用的是哪种语言?Javascript:“如果我尝试将数据推入,它会创建一个以上的对象,但不会为每个对象添加到数组中。”向我们展示您的代码。我们无法帮助您处理看不到的代码。我使用的是JavaScription。您能简化示例吗?无休止地滚动一行是不可能完全理解的。为什么要使用括号形式?(只是好奇。)还要注意,他们的“最终结果”并没有在
EntityID
中对
E
进行限制,尽管他们在示例中这样做了。@t.J.Crowder我没有任何理由使用括号形式。这只是为了防止他需要用不同的名字和符号。实际上,OP使用的是大写的
E
谢谢——他们又编辑了!以前他们不是。:-)