首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从具有动态键的对象列表中获取最低的数字

从具有动态键的对象列表中获取最低的数字
EN

Stack Overflow用户
提问于 2018-12-20 22:05:39
回答 2查看 57关注 0票数 0

我正在创建一个具有动态键的对象,如下所示:

代码语言:javascript
运行
复制
const myObject = [
  {PINO: 1764},
  {FANH: 2737},
  {WQTR: 1268},
  {CICO: 1228}
];

我想用最低的值得到键和值,在本例中是{CICO: 1228}

我创建这个对象的方式如下:

代码语言:javascript
运行
复制
  let basic = [];

  _.map(values, value => {
    let result = value[Object.keys(value)].reduce((c, v) => {
      // sum up the amounts per key
      c[Object.keys(value)] = (c[Object.keys(value)] || 0) + parseInt(v.amount);
      return c;
    }, {});
    basic.push(result);
  }) 

  console.log(basic) => [{PINO: 1764}, {FANH: 2737}, {WQTR: 1268}, {CICO: 1228}]

如何从basic对象中获得它的键的最低数字?我试着使用排序并取最低的数字,但是键是动态创建的,所以我认为我没有任何可以对其进行排序的东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-20 22:12:05

使用Array.reduce()迭代数组,通过Object.values()获取对象的值,并取数字较低的对象:

代码语言:javascript
运行
复制
const myObject = [
  {PINO: 1764},
  {FANH: 2737},
  {WQTR: 1268},
  {CICO: 1228}
];

const result = myObject.reduce((r, o) => 
  Object.values(o)[0] < Object.values(r)[0] ? o : r
);

console.log(result);

票数 1
EN

Stack Overflow用户

发布于 2018-12-20 22:12:14

这是存储数据的一种非常不方便的方法,因为键或多或少是无用的,您需要查看每个对象的值才能执行任何操作。但是,如果你需要这样做的话,你可以这样做:

代码语言:javascript
运行
复制
const myObject = [
    {PINO: 1764},
    {FANH: 2737},
    {WQTR: 1268},
    {CICO: 1228}
  ];

let least = myObject.reduce((least, current) => Object.values(least)[0] < Object.values(current)[0] ? least : current)
console.log(least)

如果它是一个大列表,则可以将数组转换为不同的格式,这样就不需要继续创建Object.values数组了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53876679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档