获取JSON数组中的最后一个元素

16
如何获取座位对象中JSON数组的最后一个元素。 我想获取具有值845的countryid,但是此JSON是动态的,所以我想获取座位对象中的最后一个元素。我的API结构如下。 谢谢您提前。
{
"expirationDate":"April 21, 2017",
"remainingDays":325,
"seats":[{"activeStatus":"S","pid":"TE70","firstName":"TE70","countryid":840},
        {"activeStatus":"Y","pid":"TE80","firstName":"TE80","countryid":845}]
 }

2
你尝试过使用 length - 1 进行索引吗? - Frédéric Hamidi
是的,我已经尝试过了,但是我无法弄清楚。谢谢您的回复。 - John Wick
5个回答

45
你可以通过按索引访问jsonData.seats数组来完成此操作,最后一项的索引为jsonData.seats.length-1 简单来说:
var countryId = jsonData.seats[jsonData.seats.length-1].countryid

3

注意:@iuliu.net的代码副本

使用DOT at

example.at(-1)

 var jsonObject = {
        "expirationDate":"April 21, 2017",
        "remainingDays":325,
        "seats":[{"activeStatus":"S","pid":"TE70","firstName":"TE70","countryid":840},
                {"activeStatus":"Y","pid":"TE80","firstName":"TE80","countryid":845}]
                 }

var lastElement = jsonObject.seats.at(-1).countryid

2

试试这个:

var jsonObject = {
"expirationDate":"April 21, 2017",
"remainingDays":325,
"seats":[{"activeStatus":"S","pid":"TE70","firstName":"TE70","countryid":840},
        {"activeStatus":"Y","pid":"TE80","firstName":"TE80","countryid":845}]
 }

var lastElement = jsonObject.seats[jsonObject.seats.length-1].countryid

返回 undefined 呢:/ - the_legend_27
这两个语句本身返回未定义,因为它们只是变量的声明。您需要访问lastElement变量以获取值。 - iuliu.net

1
你可以将数组反转并获取第一个元素:el.reverse()[0] 以你的示例为例:

var jsonObject = {
  "expirationDate": "April 21, 2017",
  "remainingDays": 325,
  "seats": [
    {"activeStatus":"S","pid":"TE70","firstName":"TE70","countryid":840},
    {"activeStatus":"Y","pid":"TE80","firstName":"TE80","countryid":845},
  ]
}

console.log( jsonObject.seats.reverse()[0].countryid ); //845


1
这种方式对数组进行变异是低效的。 - Allison

1

如果您想使用JSONPath语法来完成此操作,可以使用$.seats[-1:]。如果您想获取嵌套在最后一个元素中的countryid属性,可以使用$.seats[-1:][countryid]

在API客户端测试端点时,这非常方便用于链接请求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接