【发布时间】:2017-01-21 21:30:41
【问题描述】:
我一直在使用 GitHub API 并尝试将每个 repo 的语言分开。我有两个主要问题:
- 在“for 循环”之外访问完整列表
- 添加循环输出以创建总和
这是我到目前为止所得到的:
function repoLanguage(repoName, divId) {
var repo = repoName;
var div = divId;
function languages() {
var responseObj = JSON.parse(this.responseText);
for(x in responseObj) {
var lang = x;
var percent = Math.round(responseObj[x]/33256*1000) /10;
var results = lang + "(" + percent + "%), ";
document.getElementById(div).innerHTML += results;
}
// Cut string of trailing comma and add period.
var str = document.getElementById(div).innerHTML;
var cutStr = str.slice(0, -2) + ".";
document.getElementById(div).innerHTML = cutStr;
}
// JSON http Request
var request = new XMLHttpRequest();
request.onload = languages;
request.open('GET', 'https://api.github.com/repos/DubDJ/'+repo+'/languages', true);
request.send();
};
repoLanguage('chat-with-alex', 'languages');
<div id="languages"></div>
基本上,我想用变量总数替换静态总数,但我无法添加 JSON 文件的所有值。
for(x in responseObj) {
var lang = x;
var total = responseObj[x];
var percent = Math.round(responseObj[x]/total*1000) /10;
var results = lang + "(" + percent + "%), ";
document.getElementById(div).innerHTML += results;
}
我尝试将总数移到语言函数之外,但它每次只返回最后一个值。我尝试了total += responseObj[x] 和total = responseObj[x]++ 以及许多其他方法,但我无法得到解决方案。我用谷歌搜索并没有运气。希望有懂行的大侠指教。
【问题讨论】:
标签: javascript json api for-loop