【发布时间】:2018-08-23 09:40:40
【问题描述】:
我在以所需格式构造 object 时遇到问题。
我想以这种方式获取对象
{"pendrive":['went to each object and picked "TEST_HOME" value'],"minichip":['went to each object and picked "TEST_PROXY" value']}
上述array的值必须从每个object中收集,方法是转到mount_status然后key,对于示例 TEST_PROXY,TEST_HOME,TEST_ARCHIVE ,TEST_TARGET
所需的输出: {"pendrive":["error","na","error","ok","na","na"]} 用于键 "TEST_HOME" 其他人相同
这是我尝试过的:
var nodeSum = {};
var nodeStatus = {
"node_stats": {
"pendrive": {
"mount_status": {
"TEST_PROXY": "error",
"TEST_TARGET": "error",
"TEST_ARCHIVE": "error",
"TEST_HOME": "error"
}
},
"minichip": {
"mount_status": {
"TEST_PROXY": "na",
"TEST_TARGET": "na",
"TEST_ARCHIVE": "na",
"TEST_HOME": "na"
}
},
"simcard": {
"mount_status": {
"TEST_HOME": "error",
"TEST_TARGET": "error",
"TEST_ARCHIVE": "error",
"TEST_PROXY": "error"
}
},
"hostname": [
"nikola",
"goldplus",
"pendrive",
"simcard",
"airtel",
"minichip",
"voda"
],
"airtel": {
"mount_status": {
"TEST_PROXY": "ok",
"TEST_TARGET": "ok",
"TEST_ARCHIVE": "ok",
"TEST_HOME": "ok"
}
},
"voda": {
"mount_status": {
"TEST_HOME": "na",
"TEST_TARGET": "na",
"TEST_ARCHIVE": "na",
"TEST_PROXY": "na"
}
},
"nikola": {
"mount_status": {
"TEST_HOME": "na",
"TEST_ARCHIVE": "na",
"TEST_TARGET": "na",
"TEST_PROXY": "na"
}
}
}
}
console.log(nodeStatus);
var hostNames = nodeStatus["node_stats"]["hostname"];
for(var i = 0; i<hostNames.length;i++){
if(nodeStatus["node_stats"][hostNames[i]]){
eachNode = nodeStatus["node_stats"][hostNames[i]];
console.log(eachNode);
}
//nodeSum[hostNames[i]] = eachNode["mount_status"][Object.keys(eachNode["mount_status"])];
if(eachNode){
if(eachNode.hasOwnProperty("mount_status")){
if(i <= 1)
var allBins = Object.keys(eachNode["mount_status"]);
console.log('all keys',allBins);
console.log(nodeStatus["node_stats"][hostNames[i]][allBins[i]]);
console.log(Object.values(eachNode["mount_status"]));
var binStatusArray = Object.values(eachNode["mount_status"]);
nodeSum[allBins[i]] = eachNode["mount_status"][allBins[i]];
}
}
}
console.log('results',nodeSum);
}
【问题讨论】:
-
{"pendrive":["error","na","error","ok","na","na"]}只有一个TEST_HOME是它的孩子,你确定不想要node_stats吗? -
你的缩进让这段代码很难阅读。
标签: javascript jquery node.js