如何将第二个api调用结果中的数据数组创建为所需的格式? 我有这样的代码
var github = require('octonode');
var client = github.client();
var userName = "octocat";
var repoName = "";
var branchName = "";
var data = [];
var branches = [];
client.get('/users/'+userName+'/repos', {}, function (err, status, body, headers) {
body.forEach(function(obj) {
repoName = obj.name;
//==============================
client.get('repos/'+userName+'/'+repoName+'/branches', {}, function (errx, statusx, bodyChild, headersx) {
bodyChild.forEach(function(objChild) {
branchName = objChild.name;
});
});
});
});
我也收到了repoName
和branchName
数据。
我想要我的数据格式
使用方法
data.push({
name: repoName,
branches: 'branchName loooping here for every repoName'
});
因此branches
重复数据可以包含在我的分支标签中
谢谢
答案 0 :(得分:1)
我想你可以做这样的事情:
var data = [];
client.get('/users/'+userName+'/repos', {}, function (err, status, body, headers) {
body.forEach(function(obj) {
repoName = obj.name;
client.get('repos/'+userName+'/'+repoName+'/branches', {}, function (errx, statusx, bodyChild, headersx) {
let elem = {"name": repoName, "branches": []}; //create json object for each repo
bodyChild.forEach(function(objChild) {
elem.branches.push(objChild.name); //push all branchs to that elem
});
data.push(elem); // add the elem to the data array
});
});
});
答案 1 :(得分:0)
因此,在这种情况下,data
是一个对象,它的属性name
是字符串,而另一个属性branches
是数组。如果要将数据推送到属性branches
,可以仅在其上调用push()
函数。
请检查以下示例:
let data = {
name: "repoName",
branches: [
{
name: "foo"
}
]
}
data.branches.push(
{
name: "bar"
}
);
console.log(data);