Javascript ES6-通过JSON循环
问题陈述 我从一个API访问JSON——让我们调用这个API#1。下面列出了示例数据。基本上包含论坛信息,主要是帖子Javascript ES6-通过JSON循环,javascript,json,ajax,ecmascript-6,es6-promise,Javascript,Json,Ajax,Ecmascript 6,Es6 Promise,问题陈述 我从一个API访问JSON——让我们调用这个API#1。下面列出了示例数据。基本上包含论坛信息,主要是帖子 [{ "userId": 1, "id": 10, "title": "Tt1", "body": "qBb2" }, { "userId": 2, "id": 11, "title": "TT4", "body": "BBB5" }] 我也从另一个API访问JSON——让我们称这个API为#2。此数据
[{
"userId": 1,
"id": 10,
"title": "Tt1",
"body": "qBb2"
},
{
"userId": 2,
"id": 11,
"title": "TT4",
"body": "BBB5"
}]
我也从另一个API访问JSON——让我们称这个API为#2。此数据包含个人信息
[
{
"id": 1,
"name": "Lera",
"username": "Lera2",
"email": "Em@.com",
"address": {
"street": "GGa",
"suite": "Ap3. 333",
"city": "Gwee",
"zipcode": "2222-3333",
"geo": {
"lat": "-11213",
"lng": "312424"
}]
我想从API#2中获取所有唯一的名称,并将每个名称与一个“User”类放在一个div中
然后,我希望API#1中的每个帖子都显示在API#2中的每个用户下面,并使用匹配的“id”字段
到目前为止我得到的
fetch('API-#2')
.then(function(response) {
return response.json();
})
.then(function(myJson) {
document.getElementById("testDiv").innerHTML = JSON.stringify(myJson);
});
上述输出基本上是API#2中显示的原始数据。它还没有被处理
我不知道该怎么做
fetch('API-#2')
.then(function(response) {
return response.json();
})
.then(function(myJson) {
myJson.filter(function (item, index, self) { return self.indexOf(item) === index; }).forEach(function (user) {
document.getElementById("testDiv2").innerHTML += "<div>" + user.name + "</div>";
});
});
我只需要使用ID将帖子与姓名交叉匹配即可开始,您可以这样做:
fetch('API-#2')
.then(function(response) {
return response.json();
})
.then(function(myJson) {
myJson.filter(function (item, index, self) { return self.indexOf(item) === index; }).forEach(function (user) {
document.getElementById("testDiv").innerHTML += "<div>" + user.name + "</div>";
});
});
fetch('API-#2')
.然后(功能(响应){
返回response.json();
})
.then(函数(myJson){
filter(函数(item,index,self){return self.indexOf(item)==index;}).forEach(函数(user){
document.getElementById(“testDiv”).innerHTML+=“”+user.name+“”;
});
});
像对待任何其他JavaScript对象一样对待myJson。您可以筛选唯一值并在数据数组上调用foreach
您可以使用jquery或其他库来更简洁地构建HTML,而不是串接字符串,这是为了说明问题。我不知道这是否是您想要的 此代码示例假定您已经进行了调用以获取API1和API2的结果 然后,为了简化操作,我将用户数组转换为用户对象。对象的键是userid,对象的值是原始值 这允许您从以下主题更快地查找用户:
let user = userList[topic.userId];
然后我有一个循环,它将主题数组从对象结构转换为字符串数组。然后将它们连接成一个字符串,并用分隔它们的'\n'
然后将该字符串插入应该保存生成的HTML的div中
//假设此数据来自第一个API调用
设api1Resp=[
{
“用户ID”:1,
“id”:10,
“标题”:“酷的东西”,
“正文”:"知识本身是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德有时,如果你不自以为是,就必须为自己的行为负责。”
},
{
“用户ID”:2,
“id”:11,
“标题”:“其他东西”,
“正文”:当然,在某些情况下,威尼斯也应被视为欧盟的法定货币,但在法定货币上,威尼斯的法定货币应被视为欧盟的法定货币。在法定货币上,威尼斯的法定货币和法定货币应被视为临时货币。在法定货币上,威尼斯的法定货币和法定货币应被视为法定货币这是一个巨大的挑战。多洛尔·乌兰科必须进行一次实习。我的劳动是临时的,因为我的劳动是临时的。”
},
{
“用户ID”:2,
“id”:12,
“标题”:“热门话题”,
“正文”:“最低限度的动物劳动包括动物劳动和动物劳动。动物劳动包括动物劳动和动物劳动。动物劳动包括动物劳动和动物劳动+
“\n”+
"因共同过失而导致的共同过失是由于临时性劳动造成的。因共同过失而导致的共同过失是由于临时性劳动造成的。因共同过失而导致的共同过失是由于临时性劳动造成的。因共同过失而导致的共同过失是由于临时性劳动造成的。因共同过失而导致的共同过失是由于临时性劳动造成的我们的劳动是动物的纤毛劳动。我们的劳动必须是精英劳动。我们的劳动必须是平等的,我们的劳动必须是平等的。劳动必须是平等的,我们的劳动必须是平等的t级别id。\n“+
“\n”+
"劳动是精英的非义务性劳动和劳动实践,不属于临时性劳动。劳动不属于非义务性劳动。劳动不属于同一知识,不属于非义务性劳动。劳动不属于义务性劳动。劳动不属于义务性劳动nostrud.Pariatur dolor officia culpa应在精英官员中进行大规模的实践。Aliquip nullas veniam concetetur ut sit labour officia site reprehender。\n“+
“\n”+
"这是对精英劳工的惩罚。对精英劳工的惩罚。对精英劳工的惩罚是对精英劳工的惩罚。对非精英劳工的惩罚是对精英劳工的惩罚。对精英劳工的惩罚是对精英劳工的惩罚“如果是临时性的,则是临时性的,如果是非临时性的,则是临时性的。”
},
{
“用户ID”:2,
“id”:13,
“标题”:“这是一个较长的标题”,
“正文”:“例外情况下,在某些情况下,威尼斯应被视为欧盟的富贵艺术作品,但在某些情况下,该作品应被视为欧洲艺术作品的代表作品。”
let user = userList[topic.userId];