将新字段添加到javascript中每个索引上的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",

我正在尝试从JSON ping服务器IP,并在同一个JSON上添加响应状态。但未添加响应状态。以下是我的代码,请告知

    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值格式,它的工作。非常感谢您的支持