繁体   English   中英

如何实际从该数组中获取所有值?

[英]How to actually get all values from this array?

我有这个数据结构,但我不知道如何访问这些“事件”,因为当我执行console.log(data.opis)时,我在控制台内部的该部分未定义为 output。

我稍后想要实现的是,我将拥有一个 div 并将所有值添加到网站上,但是按顺序(这实际上是来自 post express 的事情之一,所以它们会改变状态(顺便说一句。我不知道有多少事件可能是最大值 - 所以我必须计划实际打印出事件中的所有值)

 const data = { "sifra": "", "datumSlanja": "2022-09-13T14:28:49.143+0200", "datumPrijema": "2022-09-21T08:19:53.584+0200", "opisPosiljke": null, "tezina": "0.50", "brojPaketa": 1, "vrednostPosiljke": 30, "status": 20, "statusOpis": "DOSTAVLJENA", "centar": "TC-Mostar", "mjesto": "Mostar", "posiljkuPreuzeo": "VRAĆA SE", "events": [{ "opis": "PREUZETA", "centar": "TC-Sarajevo", "datum": "2022-09-13T14:28:49.143+0200" }, { "opis": "Pošiljka razdužena u centru slanja", "centar": "TC-Sarajevo", "datum": "2022-09-13T15:59:48.134+0200" }, { "opis": "Pošiljka kod kurira na dostavi", "centar": "TC-Mostar", "datum": "2022-09-14T08:35:38.744+0200" }, { "opis": "DOGOVORENO PRIMALAC", "centar": null, "datum": "2022-09-14T12:02:33.325+0200" }, { "opis": "ODGOĐENA", "centar": "TC-Mostar", "datum": "2022-09-14T15:06:39.149+0200" } ] }; console.log(data.datumSlanja) console.log(data.sifra) console.log(data.datumPrijema) console.log(data.centar)

您正在使用 object,因此您必须执行下一步才能获取events值:

data.events.map(item => { console.log(item.opis); }):

在这种情况下,您将拥有来自events数组的所有opis值。

 const data = { "sifra": "", "datumSlanja": "2022-09-13T14:28:49.143+0200", "datumPrijema": "2022-09-21T08:19:53.584+0200", "opisPosiljke": null, "tezina": "0.50", "brojPaketa": 1, "vrednostPosiljke": 30, "status": 20, "statusOpis": "DOSTAVLJENA", "centar": "TC-Mostar", "mjesto": "Mostar", "posiljkuPreuzeo": "VRAĆA SE", "events": [{ "opis": "PREUZETA", "centar": "TC-Sarajevo", "datum": "2022-09-13T14:28:49.143+0200" }, { "opis": "Pošiljka razdužena u centru slanja", "centar": "TC-Sarajevo", "datum": "2022-09-13T15:59:48.134+0200" }, { "opis": "Pošiljka kod kurira na dostavi", "centar": "TC-Mostar", "datum": "2022-09-14T08:35:38.744+0200" }, { "opis": "DOGOVORENO PRIMALAC", "centar": null, "datum": "2022-09-14T12:02:33.325+0200" }, { "opis": "ODGOĐENA", "centar": "TC-Mostar", "datum": "2022-09-14T15:06:39.149+0200" } ] }; data.events.map(item => { console.log(item.opis); });

您跳过了部分路径到您所追求的数据,并且您需要单独处理每个数组元素。

console.log(data.events[0].opis);

 const data = { "sifra": "", "datumSlanja": "2022-09-13T14:28:49.143+0200", "datumPrijema": "2022-09-21T08:19:53.584+0200", "opisPosiljke": null, "tezina": "0.50", "brojPaketa": 1, "vrednostPosiljke": 30, "status": 20, "statusOpis": "DOSTAVLJENA", "centar": "TC-Mostar", "mjesto": "Mostar", "posiljkuPreuzeo": "VRAĆA SE", "events": [{ "opis": "PREUZETA", "centar": "TC-Sarajevo", "datum": "2022-09-13T14:28:49.143+0200" }, { "opis": "Pošiljka razdužena u centru slanja", "centar": "TC-Sarajevo", "datum": "2022-09-13T15:59:48.134+0200" }, { "opis": "Pošiljka kod kurira na dostavi", "centar": "TC-Mostar", "datum": "2022-09-14T08:35:38.744+0200" }, { "opis": "DOGOVORENO PRIMALAC", "centar": null, "datum": "2022-09-14T12:02:33.325+0200" }, { "opis": "ODGOĐENA", "centar": "TC-Mostar", "datum": "2022-09-14T15:06:39.149+0200" } ] }; console.log(data.events[0].opis);

您需要使用其中的第二层“事件”执行某种类型的 for 循环。 它是一个嵌套的 object。 我喜欢把 object 中的层想象成一棵树:所以“树干”是数据——第二层分支是“sifra”、“datumSlanja”……和“事件”。 由于 events 是我们想要引用的( data.events )。第三个是 opis、centar、datum,因为它本身是一个数组,您必须遍历 object 的该部分才能访问该数据。 或者,如果访问特定索引,您可以指定索引是什么。


常规 For 循环:
data.events.forEach(function(event){
   console.log(event)
})

对于每个循环:

 data.events.forEach(function(event){ console.log(event) })

工作示例:

 var obj = { "sifra": "", "datumSlanja": "2022-09-13T14:28:49.143+0200", "datumPrijema": "2022-09-21T08:19:53.584+0200", "opisPosiljke": null, "tezina": "0.50", "brojPaketa": 1, "vrednostPosiljke": 30, "status": 20, "statusOpis": "DOSTAVLJENA", "centar": "TC-Mostar", "mjesto": "Mostar", "posiljkuPreuzeo": "VRAĆA SE", "events": [ { "opis": "PREUZETA", "centar": "TC-Sarajevo", "datum": "2022-09-13T14:28:49.143+0200" }, { "opis": "Pošiljka razdužena u centru slanja", "centar": "TC-Sarajevo", "datum": "2022-09-13T15:59:48.134+0200" }, { "opis": "Pošiljka kod kurira na dostavi", "centar": "TC-Mostar", "datum": "2022-09-14T08:35:38.744+0200" }, { "opis": "DOGOVORENO PRIMALAC", "centar": null, "datum": "2022-09-14T12:02:33.325+0200" }, { "opis": "ODGOĐENA", "centar": "TC-Mostar", "datum": "2022-09-14T15:06:39.149+0200" } ] } console.log('For Each Loop: ') obj.events.forEach(function(event){ console.log(event) }) console.log('For Loop: ') for(x=0;x<obj.events.length; x++){ console.log(obj.events[x]) }

 const obj = { "events": [ { "opis": "PREUZETA", "centar": "TC-Sarajevo", "datum": "2022-09-13T14:28:49.143+0200" }, { "opis": "Pošiljka razdužena u centru slanja", "centar": "TC-Sarajevo", "datum": "2022-09-13T15:59:48.134+0200" }, { "opis": "Pošiljka kod kurira na dostavi", "centar": "TC-Mostar", "datum": "2022-09-14T08:35:38.744+0200" }, { "opis": "DOGOVORENO PRIMALAC", "centar": null, "datum": "2022-09-14T12:02:33.325+0200" }, { "opis": "ODGOĐENA", "centar": "TC-Mostar", "datum": "2022-09-14T15:06:39.149+0200" } ] }; console.log(obj["events"][0]["opis"]);

当您尝试访问“事件”键时,必须首先调用 object。 从提供的代码来看,这个 object 似乎没有名字,所以当 data.opis 被记录到控制台时,在代码中没有找到数据 object,所以它返回 undefined。

其次,在调用事件 object 之后,您需要将要访问的 object 的索引放入数组中。

此外,在调用“opis”键时,您无法使用点表示法,因为该键周围有引号。 您将需要使用方括号表示法来访问它,或者您可以删除引号,然后使用点表示法调用它。

希望这有帮助。 干杯。

暂无
暂无

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

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