简体   繁体   English

javascript:对象数组循环

[英]javascript: Object Array looping

I need to loop an javascript object array 我需要循环一个javascript对象数组

This is my object response : 这是我的对象response

{
 "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
   }
  }
 ]
}

and i want to do something like this: 我想做这样的事情:

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) );

You dont need to do JSON.stringify and JSON.parse everytime. 您不需要每次都执行JSON.stringifyJSON.parse

You need JSON.stringify only if you want to convert Javascript object into JSON string 仅在要将Javascript对象转换为JSON字符串时才需要JSON.stringify

and JSON.parse only if you want to convert JSON string to Javascript object and want to access its values with the key. JSON.parse仅当您想将JSON字符串转换为Javascript对象并想使用键访问其值时。

So, All you need is: 因此,您需要做的是:

 const data = { "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 ya 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 ya 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 ya 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 } } ] } const items = data.items items.forEach(x => console.log(x.htmlLink)) 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM