【发布时间】:2015-10-13 21:49:47
【问题描述】:
这是 JSON 数据的一部分,我正在尝试创建一个数组并将它们放入 Google 电子表格中,
这是m部分
"m":{
"414" : {"a":123},
"47279":{"a":1234 },
"463306":{"a":12345}}
这是z部分
"z":{"3270":
"414" : {"d":{"0":{"p":500}}},
"47279":{"d":{"0":{"p":700}}}}
这是我正在使用的 JS 代码
var Uid = Object.getOwnPropertyNames(doc1.m);
for (var lp2 = 0; lp2 < Uid.length; lp2++) {
var Uid1 = Uid[lp2];
var TotalD = Math.round(doc1.m[Uid[lp2]].a);
testUF.push([Uid1, TotalD]);
}
//Total Obelisk Defense
for (var lp1 = 0; lp1 < testUF.length; lp1++) {
var lp35id = Object.getOwnPropertyNames(doc1.z["3270"]).length;
var ob35id = Object.getOwnPropertyNames(doc1.z["3270"]);
var ob35 = "3270";
for (var lp3 = 0; lp3 < lp35id; lp3++) {
if (ob35id[lp3] === testUF[lp1][0]) {
if (typeof doc1.z[ob35][ob35id[lp3]] !== 'undefined' && doc1.z[ob35][ob35id[lp3]] !== null && doc1.z[ob35][ob35id[lp3]] !== "") {
var ob35D = (doc1.z[ob35][ob35id[lp3]].d["0"].p);
} else {
var ob35D = "0";
}
}
var ob35TD = ob35D;
}
var obTD = ob35TD;
testUF[lp1][2] = Math.round(obTD);
}
我得到的结果
+--------+--------+------+
| Uid1 | TotalD | obTD |
+--------+--------+------+
| 414 | 123 | 500 |
+--------+--------+------+
| 42729 | 1234 | 700 |
+--------+--------+------+
| 463306 | 12345 | 700 | <<-- This is the Problem, The obTD Value should be 0
+--------+--------+------+
所以问题出在我的结果中,当“m”对象中不存在 Uid 时,您可以看到 obTD 值与前一个值重复, 但如果 Uid 在 "z":{"3270" 对象中不存在,我希望它为 0。
【问题讨论】:
标签: javascript arrays json google-sheets