javascript - 使用特定数字的最后一个访问 JavaScript 数组中的位置

标签 javascript arrays sorting datetime object

我有一个打开的 websocket 向我传递数据,数据是一个包含时间戳(日期类型)和价格(数字类型)的对象。

* 我需要在每分钟结束时访问最新价格。 *

所以我在日期上使用了 .getMinute() 方法,它返回分钟。 例如,如果日期是 2017-12-14T00:26:19.944Z 并且价格是 19.99 那么我会制作一个这样的对象:{time: 26, price: 19.99}

然后我将其推送到一个数组,然后重复该过程... ...所以我可以有一个像这样的数组:

[{time: 26, price: 19.99}, {time: 26, price: 17.99}, {time: 26, price: 22.45}, {time: 27, price: 25.21}]

我需要访问每个时间属性的最后价格 - 所以上面我需要访问 22.45 的价格并将其插入一个新数组。

感谢帮助,谢谢。

最佳答案

您可以利用 objects不能有重复的同名属性。

请参阅下面的实际示例。

注意 reduce() 的使用函数达到object form {time: price} 和随后的map()返回原来的函数array form [{时间,价格}..]

结果是一个数组,仅包含每分钟最新价格

// Original Data.
const data = [{time: 26, price: 19.99}, {time: 26, price: 17.99}, {time: 26, price: 22.45}, {time: 27, price: 25.21}]

// Object Form.
const unique = data.reduce((accumulator, point) => ({...accumulator, [point.time]: point.price}), {})

// Array Form.
const array = Object.keys(unique).map((time) => ({time, price: unique[time]}))

// Result.
console.log('Object Form', unique) // Object Form.
console.log('Array Form', array) // Array Form.

关于javascript - 使用特定数字的最后一个访问 JavaScript 数组中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47804212/

相关文章:

javascript - 如何删除 XML 节点?

c++ - 二进制搜索递减列表?

arrays - 如何在 Postgresql 中获取数组的 JavaScript/JSON 数组?

sorting - Elasticsearch按嵌套对象排序

Java - 如何在for循环中修改数组并在for循环退出后记住它?

javascript - jQuery .hide() 方法不隐藏 div

javascript - 显示Youtube视频内容

javascript - ngInit 不异步工作(使用 $q promise)

ios - 分子量计算器中的枚举

c# - 在 Reactive Extensions 中按预定义的顺序对 Observable 进行排序