将新字段添加到javascript中每个索引上的json对象
我正在尝试从JSON ping服务器IP,并在同一个JSON上添加响应状态。但未添加响应状态。以下是我的代码,请告知将新字段添加到javascript中每个索引上的json对象,javascript,node.js,arrays,json,Javascript,Node.js,Arrays,Json,我正在尝试从JSON ping服务器IP,并在同一个JSON上添加响应状态。但未添加响应状态。以下是我的代码,请告知 var IP = [{ "name": "Server 01", "serverip": "10.211.130.32" }, { "name": "Server 02",
var IP = [{
"name": "Server 01",
"serverip": "10.211.130.32"
},
{
"name": "Server 02",
"serverip": "10.211.130.33"
}]
for (let host of IP) {
let res = await ping.promise.probe(host.serverip, {
timeout: 5
});
IP = {...IP, "status" : res.alive}
}
console.log(IP)
我得到的输出是
{
"0": {
"name": "Server 01",
"serverip": "10.211.130.32"
},
"1": {
"name": "Server 02",
"serverip": "10.211.130.53"
},
"status": true
}
期望像这样的输出
[{
"name": "Server 01",
"serverip": "10.211.130.32",
"status" : true
},
{
"name": "Server 02",
"serverip": "10.211.130.33",
"status" : false
}]
用于输入
,并对数据使用IP[host]
您所做的错误是,您将整个IP替换为IP和一个新的密钥状态
,而您必须在IP的每个对象中拥有状态
var getStat=(ar)=>{
返回新承诺((解决)=>{
setTimeout(()=>resolve({alive:true}),1000;
});
}
var func=async()=>{
变量IP=[{
“名称”:“服务器01”,
serverip:“10.211.130.32”
},
{
“名称”:“服务器02”,
serverip:“10.211.130.33”
}
]
for(让主机进入IP){
让res=wait getStat(IP[host].serverip{
超时时间:5
});
IP[主机]['status']=res.alive
}
控制台日志(IP)
}
func()代码>问题是否已解决?感谢Adarsh的回复。我尝试并获得消息-obj.toObject不是函数您是否检查了res.alive
的值?是的,它返回true或FALSE我已更新了答案,请查看。我发现问题在于输入值IP。数据是动态接收的。我已经纠正了IP值格式,它的工作。非常感谢您的支持