微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何获得数组的最后一项?

如何解决我如何获得数组的最后一项?

我有一个对象数组。我需要从数组的最后一项渲染信息,然后尝试这样做:

<p>{leg.segments[leg.segments.length - 1].arrivalCity.caption},&nbsp;</p>

但它一直显示错误

无法读取未定义的属性标题”。

似乎我可以从长度为2或更大的数组中获取项目(或者当专门获取leg.segments[0].arrivalCity.caption时,但是尝试仅包含一个项目的数组时出现错误。我不明白问题出在哪里)是因为当数组只有一项并且可以使用时,它应该只返回leg.segments[leg.segment[0]]

所有对象都有'caption'键,唯一的问题是从[0]或[1]索引中获取它。

该数组是解析的JSON的一部分,以下是我映射通过的一个元素作为示例:

"legs" :
 [
   {
     "segments" :
       [
         {
           "arrivalCity" :
             {
               "uid" : "LED","caption" : "ST PETERSBURG"
             }
         },{
           "arrivalCity" :
             {
               "uid" : "LON","caption" : "LONDON"
             }
         }
       ]
    },{
       "segments" :
         [
           {
              "arrivalCity" :
                {
                  "uid" : "MOW","caption" : "MOSCOW"
                }
           }
         ]
     }
 ]

我需要在第一种情况下渲染LONDON,在第二种情况下渲染MOSCOW。但是我可以使用<p>{leg.segments[0].arrivalCity.caption}</p>或ST <p>{leg.segments[leg.segments.length - 1].arrivalCity.caption}</p>

来获得ST PETERSBURG和MOSCOW

解决方法

它无法重现您的问题。请向我们展示您的阵列。

假设您的数组是

var leg={segments:[{arrivalCity:{caption:"cap1"}}]};

然后,如果您跑步;

leg.segments[leg.segments.length - 1].arrivalCity.caption

您将看到预期的输出为“ cap1”

,

似乎像您的leg.segments[leg.segments.length - 1],我认为它是不具有 arrivalCity 属性的对象。如果有,那么您必须输入任何错字,否则您的数据形状可能会有所不同。

您能与我们分享您的阵列以进行查看吗?

,

...引用OP ...

... @snowpack/plugin-webpack或... <p>{leg.segments[0].arrivalCity.caption}</p>

误解可能是由于 未将<p>{leg.segments[leg.segments.length - 1].arrivalCity.caption}</p>视为数组 。因此,为了始终访问每个legs数组的最后一个arrivalCity项,必须首先迭代segments数组。

使用OP的示例数据并实现基本的渲染功能,该功能首先对legs数组进行迭代,并且仅在每次迭代时才通过例如{{1 }},正如OP已经正确完成的一样,什么都不会失败,但是预期的结果将呈现...

  • 伦敦
  • 莫斯科

...示例...

legs
segments

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。