获取最后一个项目数组

时间:2020-01-28 09:06:40

标签: arrays json angular typescript

我有这个数组

{
  "data": [
    {
      "lat": 31.135859,
      "lng": 46.823952,
      "hd": 319
    },
    {
      "lat": 31.050476,
      "lng": 46.907204,
      "hd": 320
    },
    {
      "lat": 30.999023,
      "lng": 46.957184,
      "hd": 320
    },
    {
      "lat": 30.955353,
      "lng": 46.999352,
      "hd": 320
    }
  ]
}

虽然我尝试使用pop()仅从上面的数组中获取最后一个项目,但出现这样的错误:

this.heading.pop不是函数

heading: [] = [];
for (let datas of getdata['data']) {
  this.heading = datas.hd;
  console.log("heading"+this.heading.pop());
}

this.heading.pop();

4 个答案:

答案 0 :(得分:2)

您在 loop使用错误。您可以通过更简单的方式执行此操作:

let obj = { "data": [ { "lat": 31.135859, "lng": 46.823952, "hd": 319 }, { "lat": 31.050476, "lng": 46.907204, "hd": 320 }, { "lat": 30.999023, "lng": 46.957184, "hd": 320 }, { "lat": 30.955353, "lng": 46.999352, "hd": 320 } ] }

console.log(obj.data.pop().hd);

答案 1 :(得分:1)

const item = array.data[array.data.length - 1].hd;

答案 2 :(得分:1)

也许您可以尝试以下一种方法:

let obj = { "data": [ { "lat": 31.135859, "lng": 46.823952, "hd": 319 }, { "lat": 31.050476, "lng": 46.907204, "hd": 320 }, { "lat": 30.999023, "lng": 46.957184, "hd": 320 }, { "lat": 30.955353, "lng": 46.999352, "hd": 320 } ] }

console.log(obj.data.reduceRight(value => value).hd) // 320

我希望它能为您提供帮助。

答案 3 :(得分:1)

我认为您要尝试将“ hd”标头推到另一个数组并获取最后一个标头。您可以像下面这样

var obj = {
    "data": [
        {
            "lat": 31.135859,
            "lng": 46.823952,
            "hd": 319
        },
        {
            "lat": 31.050476,
            "lng": 46.907204,
            "hd": 320
        },
        {
            "lat": 30.999023,
            "lng": 46.957184,
            "hd": 320
        },
        {
            "lat": 30.955353,
            "lng": 46.999352,
            "hd": 320
        }
    ]
}

var heading = []

function getLast() {
    for (let datas of obj.data) {
        heading.push(datas.hd);
    }
    return heading.pop();
}

console.log(getLast());

有更有效的方法可以做到这一点。这些答案已经给出。