比较数组中前一个元素与其后一个元素之间的值

基纳美拉奇

我正在滚动jq手册并阅读所有可用的命令,但是阅读它仅完成了大约10%。(这很长,这是一件好事,除了我要在六天内提交一个艺术项目演示文稿之外,我必须首先完成此JSON分析,以便可以开始测量350米的切割磁带。)

我有一个只有一个对象的JSON文件。该对象包含3555个JSON对象的数组,可以通过其索引从0到3554对其进行访问。这显示了这些JSON对象之一的结构(我修改了电话号码以及即时消息的主体/内容消息,因为这来自真实的对话):

$ cat selected-convo.json | jq '.[3554]'

{
  "timestamp": 1589547750278,
  "attachments": [],
  "source": "+491604444444",
  "sourceUuid": "a258be99-b00a-456d-bba6-258d72878b64",
  "sourceDevice": 1,
  "sent_at": 1589536960941,
  "sent_to": [
    "+31707777777"
  ],
  "received_at": 1589547750278,
  "conversationId": "823c0416-9406-4922-8ee9-f3cf36c4784c",
  "type": "outgoing",
  "sent": true,
  "unidentifiedDeliveries": [
    "+31707777777"
  ],
  "expirationStartTimestamp": 1589536960941,
  "schemaVersion": 10,
  "id": "42e9ed93-ad1e-44fc-912a-dd310c16b52e",
  "body": "X xxxx X xxxx X xxx xxxxxxxxx xx xxx.",
  "contact": [],
  "decrypted_at": 1589547750368,
  "errors": [],
  "flags": 0,
  "hasAttachments": 0,
  "isViewOnce": false,
  "preview": [],
  "requiredProtocolVersion": 0,
  "supportedVersionAtReceive": 4,
  "quote": null,
  "sticker": null,
  "recipients": [
    "+31707777777"
  ]
}

我只想衡量一个人回复另一个人所花费的时间。因此,我想要的键值对是在时间戳发送的,无论消息是传入还是传出。

 $ cat selected-convo.json | jq '.[] | .sent_at, .type'

给我以下输出(3555数组中的前十个):

1577640636917
"outgoing"

1577674806478
"incoming"
1577674810527
"incoming"

1578513043504
"outgoing"
1578520666264
"outgoing"
1580600735958
"outgoing"
1580600816040
"outgoing"

1580601327790
"incoming"

1580602829082
"outgoing"
1580602833184
"outgoing"

但是,我只想看到第一个外发消息,然后是第一个外来消息,然后是下一个外发消息,再是下一个外来消息,依此类推。(如果我连续发送了三个消息,我想删除/忽略第二个消息和第三条消息,而只看第一条消息。如果在响应之前我连续收到八条消息,我只想看这些消息中的第一条消息,并删除/跳过/转发接下来的七条消息。因此,从上面的列表中,我想要:

1577640636917
"outgoing"

1577674806478
"incoming"

1578513043504
"outgoing"

1580601327790
"incoming"

1580602829082
"outgoing"

有任何想法吗?

oguz ismail

我会foreach为此使用它,因为该任务基本上需要一个状态机,只要状态改变,状态机就会从当前输入中提取一些值。

foreach .[] as {$type, $sent_at} (
  {};
  {prev: .curr, curr: $type};
  if .curr != .prev
  then $type, $sent_at
  else empty end
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数组元素的值与前一个元素求和

来自分类Dev

Javascript如何将数组中的第一个元素与其他元素进行比较

来自分类Dev

lodash 比较一个数组中的元素

来自分类Dev

比较当前数组元素与前一个数组元素

来自分类Dev

在数组中查找一个元素,其中每个元素比其前一个元素多一个或一个小

来自分类Dev

在数组中查找一个元素,其中每个元素比其前一个元素多一个或少一个

来自分类Dev

如何将数组中的每个元素与一个值进行比较?

来自分类Dev

比较列表中的元素并创建一个新元素

来自分类Dev

在Scala中为一个数组的许多元素分配一个值

来自分类Dev

Xquery,将数组中的元素与下一个元素进行比较

来自分类Dev

如何将前一个数组元素的值添加到当前元素

来自分类Dev

如何比较另一个数组中一个数组的元素

来自分类Dev

如何从数组中获取特定元素并基于数组键值的比较创建一个新数组?

来自分类Dev

如何在 ReactJS 组件对象数组中插入一个元素(在现有元素之间)

来自分类Dev

如何从元素数组中删除一个元素

来自分类Dev

从上一个数组元素中减去双精度数组元素的值

来自分类Dev

将一个数组的每个元素与另一个元素进行比较,并找出未找到的元素

来自分类Dev

python:如何比较一个列表中的元素

来自分类Dev

比较列表列表中的一个元素

来自分类Dev

Python:比较列表中的最后一个元素

来自分类Dev

如何检测一个元素是否是数组中的最后一个元素?

来自分类Dev

使用LINQ通过一个查询从数组中获取前五个元素和后五个元素

来自分类Dev

如何更改前一个元素的样式值

来自分类Dev

更改多维数组中的一个元素会更改所有具有值的元素

来自分类Dev

数组的最后一个元素的值不同

来自分类Dev

前一个元素的Selenium XPath

来自分类Dev

前一个元素的Selenium XPath

来自分类Dev

根据前一个元素的每个值的百分比差异创建数组

来自分类Dev

PHP-计算多维数组中第一个元素中的唯一值

Related 相关文章

  1. 1

    将数组元素的值与前一个元素求和

  2. 2

    Javascript如何将数组中的第一个元素与其他元素进行比较

  3. 3

    lodash 比较一个数组中的元素

  4. 4

    比较当前数组元素与前一个数组元素

  5. 5

    在数组中查找一个元素,其中每个元素比其前一个元素多一个或一个小

  6. 6

    在数组中查找一个元素,其中每个元素比其前一个元素多一个或少一个

  7. 7

    如何将数组中的每个元素与一个值进行比较?

  8. 8

    比较列表中的元素并创建一个新元素

  9. 9

    在Scala中为一个数组的许多元素分配一个值

  10. 10

    Xquery,将数组中的元素与下一个元素进行比较

  11. 11

    如何将前一个数组元素的值添加到当前元素

  12. 12

    如何比较另一个数组中一个数组的元素

  13. 13

    如何从数组中获取特定元素并基于数组键值的比较创建一个新数组?

  14. 14

    如何在 ReactJS 组件对象数组中插入一个元素(在现有元素之间)

  15. 15

    如何从元素数组中删除一个元素

  16. 16

    从上一个数组元素中减去双精度数组元素的值

  17. 17

    将一个数组的每个元素与另一个元素进行比较,并找出未找到的元素

  18. 18

    python:如何比较一个列表中的元素

  19. 19

    比较列表列表中的一个元素

  20. 20

    Python:比较列表中的最后一个元素

  21. 21

    如何检测一个元素是否是数组中的最后一个元素?

  22. 22

    使用LINQ通过一个查询从数组中获取前五个元素和后五个元素

  23. 23

    如何更改前一个元素的样式值

  24. 24

    更改多维数组中的一个元素会更改所有具有值的元素

  25. 25

    数组的最后一个元素的值不同

  26. 26

    前一个元素的Selenium XPath

  27. 27

    前一个元素的Selenium XPath

  28. 28

    根据前一个元素的每个值的百分比差异创建数组

  29. 29

    PHP-计算多维数组中第一个元素中的唯一值

热门标签

归档