循环javascript对象数组(在另一个对象内)
我需要循环一个javascript对象数组 这是我的对象循环javascript对象数组(在另一个对象内),javascript,arrays,object,Javascript,Arrays,Object,我需要循环一个javascript对象数组 这是我的对象响应: { "kind": "calendar#events", "etag": "\"p3288namrojte20g\"", "summary": "pedicura", "updated": "2019-05-01T14:25:51.642Z", "timeZone": "America/Argentina/Cordoba", "accessRole": "owner", "defaultReminders": [
响应
:
{
"kind": "calendar#events",
"etag": "\"p3288namrojte20g\"",
"summary": "pedicura",
"updated": "2019-05-01T14:25:51.642Z",
"timeZone": "America/Argentina/Cordoba",
"accessRole": "owner",
"defaultReminders": [
{
"method": "popup",
"minutes": 30
}
],
"nextSyncToken": "CJCLqtvE-uECEJCLqtvE-uECGAU=",
"items": [
{
"kind": "calendar#event",
"etag": "\"3113441344690000\"",
"id": "hb6me2h********1dun5rs10",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=aGI2bWUyaGFvaGtqbWI4bXYxZHVuNXJzMTAgZTYyMXJtMD********Zw",
"created": "2019-05-01T14:12:08.000Z",
"updated": "2019-05-01T14:24:32.345Z",
"summary": "Prueba de: Pedicura en sala 2-x",
"description": "x-prueba de añadir masajes en sala 2 y notificar al manicura y a otra persona, fernanda?",
"creator": {
"email": "guit----@gmail.com"
},
"organizer": {
"email": "e---s90vak@group.calendar.google.com",
"displayName": "pedicura",
"self": true
},
"start": {
"dateTime": "2019-05-08T21:00:00-03:00",
"timeZone": "America/Argentina/Buenos_Aires"
},
"end": {
"dateTime": "2019-05-08T23:00:00-03:00",
"timeZone": "America/Argentina/Buenos_Aires"
},
"iCalUID": "hb6me2ha----s10@google.com",
"sequence": 2,
"attendees": [
{
"email": "aleja----it@gmail.com",
"responseStatus": "needsAction"
},
{
"email": "j----d@gmail.com",
"responseStatus": "needsAction"
}
],
"reminders": {
"useDefault": true
}
},
{
"kind": "calendar#event",
"etag": "\"3113441378884000\"",
"id": "tv**0nbhkt**47la0k",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=dHZmOTQwbmJoa3Q3cnJvYjJsMW00N2xhMGsgZTYyMXJtM*****",
"created": "2019-05-01T14:18:53.000Z",
"updated": "2019-05-01T14:24:49.442Z",
"summary": "Prueba de: Pedicura en sala 2-x",
"description": "x-prueba de añadir masajes en sala 2 y notificar al manicura y a otra persona, fernanda?",
"creator": {
"email": "guit----@gmail.com"
},
"organizer": {
"email": "e---s90vak@group.calendar.google.com",
"displayName": "pedicura",
"self": true
},
"start": {
"dateTime": "2019-05-07T21:00:00-03:00",
"timeZone": "America/Argentina/Buenos_Aires"
},
"end": {
"dateTime": "2019-05-07T23:00:00-03:00",
"timeZone": "America/Argentina/Buenos_Aires"
},
"iCalUID": "tvf940nbhk----m47la0k@google.com",
"sequence": 2,
"attendees": [
{
"email": "ale---it@gmail.com",
"responseStatus": "needsAction"
},
{
"email": "j--d@gmail.com",
"responseStatus": "needsAction"
}
],
"reminders": {
"useDefault": true
}
},
{
"kind": "calendar#event",
"etag": "\"3113441503284000\"",
"id": "tqhje1kd*****0",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=dHFoamUxa2Q0MG51M2Q3cGd2b2xlOGRqODAgZTYyMX*****",
"created": "2019-05-01T14:25:51.000Z",
"updated": "2019-05-01T14:25:51.642Z",
"summary": "Prueba de",
"description": "x-prueba de añadir masajes en sala 2 y notificar al manicura y a otra persona, fernanda?",
"creator": {
"email": "guit----@gmail.com"
},
"organizer": {
"email": "e---s90vak@group.calendar.google.com",
"displayName": "prueba",
"self": true
},
"start": {
"dateTime": "2019-04-26T21:00:00-03:00",
"timeZone": "America/Argentina/Buenos_Aires"
},
"end": {
"dateTime": "2019-04-26T23:00:00-03:00",
"timeZone": "America/Argentina/Buenos_Aires"
},
"iCalUID": "tqh*****7pgvole8dj80@google.com",
"sequence": 0,
"attendees": [
{
"email": "-it@gmail.com",
"responseStatus": "needsAction"
},
{
"email": "-aud@gmail.com",
"responseStatus": "needsAction"
}
],
"reminders": {
"useDefault": true
}
}
]
}
我想循环项目(身体内部),我尝试过这样的方式:
var dataStr = JSON.stringify(response);
var dataPrs = JSON.parse(dataStr);
var dataList = JSON.stringify(dataPrs.items);
dataStr = JSON.stringify(dataList);
dataPrs = JSON.parse(dataStr);
dataListPrs.forEach( console.log(dataPrs.htmlLink) );
而且:
cons items = data.items;
items.forEach(x => console.log(x.htmlLink))
var dataStr = JSON.stringify(response);
var dataPrs = JSON.parse(dataStr);
var body = dataPrs.body.items;
console.log("body", body);
const items = response.items;
console.log("items", items);
items.forEach(x => console.log(x.htmlLink));
而且:
cons items = data.items;
items.forEach(x => console.log(x.htmlLink))
var dataStr = JSON.stringify(response);
var dataPrs = JSON.parse(dataStr);
var body = dataPrs.body.items;
console.log("body", body);
const items = response.items;
console.log("items", items);
items.forEach(x => console.log(x.htmlLink));
但是
items
始终是未定义的您可以使用forEach()
从json对象获取htmlinks,如下所示-
let obj={“种类”:“日历事件”,“etag”:“p3288namrojte20g”,“摘要”:“pedicura”,“更新”:“2019-05-01T14:25:51.642Z”,“时区”:“美国/阿根廷/科尔多瓦”,“访问角色”:“所有者”,“默认提醒”:[{“方法”:“弹出”,“分钟”:30}],“下一个语法提示”:“CJCLqtvE uECEJCLqtvE uECGAU=”,“项目”:“种类”:“日历事件”,“etag”:3113441344690000\,“id”:“hb6me2h*******1dun5rs10”,“状态”:“已确认”,“HTMLINK”:”https://www.google.com/calendar/event?eid=aGI2bWUyaGFvaGtqbWI4bXYxZHVuNXJzMTAgZTYyMXJtMD********Zw,“创建”:“2019-05-01T14:12:08.000Z”,“更新”:“2019-05-01T14:24:32.345Z”,“摘要”:“Prueba de:Pedicura en sala 2-x”,“描述”:“x-prueba de añadir masajes en sala 2 y Notificiar al-manicura y a otra persona,fernanda?”,“创建者”:{“电子邮件”:“guit-->@gmail.com”},“组织者”:{“电子邮件”:“e---s90vak@group.calendar.google.com“,”displayName“:”pedicura“,”self“:true}”,开始“{”日期时间“:”2019-05-08T21:00:00-03:00”,“时区“:”美国/阿根廷/布宜诺斯艾利斯“,”结束“{”日期时间“:”2019-05-08T23:00:00-03:00,“时区”:“美国/阿根廷/布宜诺斯艾利斯”},“iCalUID”:“hb6me2ha”----s10@google.com,“顺序”:2,“与会者”:[{“电子邮件”:“aleja”----it@gmail.com,“responseStatus”:“needsAction”},{“email”:“j----d@gmail.com“,“responseStatus”:“needsAction”}],“提醒”:{“useDefault”:true}}},{“种类”:“日历#事件”,“etag”:“3113441378884000”,id:“电视**0nbhkt**47la0k”,“状态:“已确认”,“HTMLINK:”https://www.google.com/calendar/event?eid=dHZmOTQwbmJoa3Q3cnJvYjJsMW00N2xhMGsgZTYyMXJtM*****“,”已创建“:”2019-05-01T14:18:53.000Z“,”已更新“:”2019-05-01T14:24:49.442Z“,”摘要“:”Prueba de:Pedicura en sala 2-x“,”说明“:“x-prueba de añadir masajes en sala 2 y Notificiar al-manicura y a otra persona,fernanda?”,“创建者”:{“电子邮件”:“guit-->@gmail.com”},“组织者”:{“电子邮件”:“e---s90vak@group.calendar.google.com“,”displayName“:”pedicura“,”self“:true}”,开始“{”日期时间“:”2019-05-07T21:00:00-03:00”,“时区“:”美国/阿根廷/布宜诺斯艾利斯“,”结束“{”日期时间“:”2019-05-07T23:00:00-03:00,“时区”:“美国/阿根廷/布宜诺斯艾利斯”},“iCalUID”:“tvf940nbhk”----m47la0k@google.com,“顺序”:2,“与会者”:[{“电子邮件”:“ale”---it@gmail.com,“responseStatus”:“needsAction”},{“email”:“j--d@gmail.com“,“responseStatus”:“needsAction”}],“提醒”:{“useDefault”:true}}},{“种类”:“日历#事件”,“etag”:“\“3113441503284000\”,“id”:“tqhje1kd****0”,“状态”:“已确认”,“HTMLINK”:https://www.google.com/calendar/event?eid=dHFoamUxa2Q0MG51M2Q3cGd2b2xlOGRqODAgZTYyMX*****“创建”:“2019-05-01T14:25:51.000Z”,“更新”:“2019-05-01T14:25:51.642Z”,“摘要”:“Prueba de”,“描述”:“x-Prueba de añadir masajes en sala 2 y Notificiar al-manicura y a otra persona,fernanda?”?“,”创建者“:{”电子邮件“:”guit----@gmail.com“}”,组织者“{”电子邮件“:”e---s90vak@group.calendar.google.com“,”displayName“:”普鲁巴“,”自我“:”真实“,”开始“,”日期时间“,”2019-04-26T21:00:00-03:00“,”时区“,”美国/阿根廷/布宜诺斯艾利斯“,”结束“,”日期时间“:”2019-04-26T23:00:00-03:00“,”时区“,”美国/阿根廷/布宜诺斯艾利斯“,”伊卡洛伊德“:“tqh*****7pgvole8dj80@google.com,“顺序”:0,“与会者”:[{“电子邮件”:”-it@gmail.com,“responseStatus”:“needsAction”},{“email”:-aud@gmail.com“,“responseStatus”:“needsAction”}],“提醒”:{“useDefault”:true}}]}
obj['items'].forEach(myFunction);
函数myFunction(项目、索引){
if(item.hasOwnProperty('htmlink')){
console.log(item.htmlink)
}
}
根据您提供的内容,我希望这些行能够正常工作:
const items = response.items;
console.log("items", items);
items.forEach(x => console.log(x.htmlLink));
当我将response
设置为您提供的JSON时,它在我的测试中起了作用。因此,我希望response
不是您认为的代码运行时的样子
const response={“种类”:“日历事件”,“etag”:“p3288namrojte20g”,“摘要”:“pedicura”,“更新”:“2019-05-01T14:25:51.642Z”,“时区”:“美国/阿根廷/科尔多瓦”,“访问角色”:“所有者”,“默认提醒”:[{“方法”:“弹出”,“分钟数”:30}],“下一个Synctoken”:“CJCLqtvE uECEJCLqtvE uECGAU=”,“项目”:“种类”:“日历事件”,“etag”:\“3113441344690000\”,“id”:“hb6me2h*******1dun5rs10”,“状态”:“已确认”,“HTMLINK”:https://www.google.com/calendar/event?eid=aGI2bWUyaGFvaGtqbWI4bXYxZHVuNXJzMTAgZTYyMXJtMD********Zw,“创建”:“2019-05-01T14:12:08.000Z”,“更新”:“2019-05-01T14:24:32.345Z”,“摘要”:“Prueba de:Pedicura en sala 2-x”,“描述”:“x-prueba de añadir masajes en sala 2 y Notificiar al-manicura y a otra persona,fernanda?”,“创建者”:{“电子邮件”:“guit-->@gmail.com”},“组织者”:{“电子邮件”:“e---s90vak@group.calendar.google.com“,”displayName“:”pedicura“,”self“:true}”,开始“{”日期时间“:”2019-05-08T21:00:00-03:00”,“时区“:”美国/阿根廷/布宜诺斯艾利斯“,”结束“{”日期时间“:”2019-05-08T23:00:00-03:00,“时区”:“美国/阿根廷/布宜诺斯艾利斯”},“iCalUID”:“hb6me2ha”----s10@google.com,“顺序”:2,“与会者”:[{“电子邮件”:“aleja”----it@gmail.com,“responseStatus”:“needsAction”},{“email”:“j----d@gmail.com“,“responseStatus”:“needsAction”}],“提醒”:{“useDefault”:true}}},{“种类”:“日历#事件”,“etag”:“3113441378884000”,id:“电视**0nbhkt**47la0k”,“状态:“已确认”,“HTMLINK:”https://www.google.com/calendar/event?eid=dHZmOTQwbmJoa3Q3cnJvYjJsMW00N2xhMGsgZTYyMXJtM*****“,”已创建“:”2019-05-01T14:18:53.000Z“,”已更新“:”2019-05-01T14:24:49.442Z“,”摘要“:”Prueba de:Pedicura en sala 2-x“,”说明“:“x-prueba de añadir masajes en sala 2 y Notificiar al-manicura y a otra persona,fernanda?”,“创建者”:{“电子邮件”:“guit-->@gmail.com”},“组织者”:{“电子邮件”:“e---s90vak@group.calendar.google.com“,”displayName“:”pedicura“,”self“:true}”,start“:{”dateTime“:”2019-05-07T21:00:00-03: