首页 > 解决方案 > 使用javascript的对象中具有最高值的不同日期

问题描述

我有这样的事情:

data = [
  {
    DateMeasured:"2018-08-27T04:46:25",
    Steps:100
  },
  {
    DateMeasured:"2018-08-27T04:46:25",
    Steps:500
  },
  {
    DateMeasured:"2018-08-27T04:46:25",
    Steps:800
  },
{
    DateMeasured:"2018-08-26T04:46:25",
    Steps:400
  },
{
    DateMeasured:"2018-08-26T04:46:25",
    Steps:300
  },
{
    DateMeasured:"2018-08-25T04:46:25",
    Steps:100
  }
];

我有一个像上面这样的数据对象,现在我想重新创建具有严格日期但其最高步骤的对象,但现在我想要这样:

data = [
  {
    DateMeasured:"2018-08-27T04:46:25",
    Steps:800
  },
{
    DateMeasured:"2018-08-26T04:46:25",
    Steps:400
  },
{
    DateMeasured:"2018-08-25T04:46:25",
    Steps:100
  }
];

我怎样才能实现这个目标?

标签: javascriptjson

解决方案


如果您需要按步数排序并取前 3 个元素:

const data = [ { DateMeasured:"2018-08-27T04:46:25", Steps:100 }, { DateMeasured:"2018-08-27T04:46:25", Steps:500 }, { DateMeasured:"2018-08-27T04:46:25", Steps:800 }, { DateMeasured:"2018-08-26T04:46:25", Steps:400 }, { DateMeasured:"2018-08-26T04:46:25", Steps:300 }, { DateMeasured:"2018-08-25T04:46:25", Steps:100 } ];

const sorted = data.sort((a, b) => b.Steps - a.Steps)
const takeFirst3 = sorted.slice(0, 3)

console.log(takeFirst3)


推荐阅读