【发布时间】:2019-03-03 22:48:53
【问题描述】:
这是我的代码
$(document).ready(function () {
var interval = 10000;
var refresh = function() {
$("#nodes").empty();
$.getJSON("https://tankionline.com/s/status.js",function(json){
let sum = json.nodes.reduce((acc, obj)=>(val+obj.online+obj.inbattles), 0);
console.log(sum);
console.log("updated");
var nodes = Object.keys(json.nodes).length;
for (var i = 0; i < nodes; i++) {
var num = i + 1;
var main = 'main.c' + num;
$("#nodes").append(`
<tr>
<th scope="row">${num}</th>
<td> ${json.nodes[main].online} </td>
<td> ${json.nodes[main].inbattles} </td>
<td> ${json.nodes[main].online - json.nodes[main].inbattles} </td>
</tr>
`)
}
});
setTimeout(function() {
refresh();
},
interval);
}
refresh();
});
json文件中包含20个服务器,每个服务器中都有一个在线玩家值和一个inbattles玩家值。 我想获得在线玩家的总和和inbattles玩家的总和。 为了存档,我尝试在循环外和循环内创建一个数组,将值推送到数组,然后求和。 但我不认为这是最好的解决方案,所以我想知道这是最好的方法
【问题讨论】:
-
到目前为止你尝试了什么?
-
getJSON的回调接收到已经被$.parseJSON解析的数据。命名 varjson会产生误导,因为它会诱使您误以为它是 JSON,而实际上它不是。然后你会在你的代码中得到像json.nodes这样的东西,这是没有意义的。 JSON 是从不 具有您可以像这样直接读取的属性的对象。可以解析 JSON 以获取值,但 JSON 始终是一个字符串!
标签: javascript sum