【问题标题】:How to Get Last Value That Equals to X in json Array如何在json数组中获取等于X的最后一个值
【发布时间】:2019-01-17 04:05:57
【问题描述】:

我需要在下面给出的以下响应中获取最后一个“观察到”等于“观察到”的“num”值(例如“估计”之前的那个)。

return 每三个小时将下一个“估计”更新为“观察到”,每次请求 API 时我都需要显示更新后的“num”值。

非常感谢您的帮助。

axios.get('http://url_to_api')
  .then(function (response) => {
   //do the magic here to get last observed val
    console.log(LAST_OBSERVED_VAL)
  })

回应:

[  
  [  
    "time_tag",
    "num",
    "observed",
    "scale"
  ],
  [  
    "2019-01-16 18:00:00",
    "2",
    "observed",
    null
  ],
  [  
    "2019-01-16 21:00:00",
    "3",
    "observed",
    null
  ],
  [  
    "2019-01-17 00:00:00",
    "3",  // <-- Get this value
    "observed",
    null
  ],
  [  
    "2019-01-17 03:00:00",
    "2",
    "estimated",
    null
  ],
  [  
    "2019-01-17 06:00:00",
    "2",
    "estimated",
    null
  ],
  [  
    "2019-01-18 00:00:00",
    "2",
    "predicted",
    null
  ],
  [  
    "2019-01-18 03:00:00",
    "1",
    "predicted",
    null
  ],
]

【问题讨论】:

    标签: arrays json api


    【解决方案1】:

    你可以插入类似这样的魔法:

    var k, LAST_OBSERVED_VAL = '';
    for (k = response.data.length-1; k >= 0; k--)
    {
        if (response.data[k][2] == "observed")
        {
            LAST_OBSERVED_VAL = response.data[k][1];
            break;
        }
    }
    

    【讨论】:

    • 感谢您的回答 - 我只是没有完全理解这些类型的迭代。但是,这会返回 null。看看this returned json array会不会更有帮助?
    • @CelticParser:你能检查一下 response.data 变量中的内容吗? (例如使用 console.log(response.data))
    猜你喜欢
    • 1970-01-01
    • 2021-12-26
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 2020-06-15
    • 2022-08-24
    • 1970-01-01
    相关资源
    最近更新 更多