javascript - 从具有动态键的对象列表中获取最小的数字

标签 javascript

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

const myObject = [
  {PINO: 1764},
  {FANH: 2737},
  {WQTR: 1268},
  {CICO: 1228}
];

我想获取具有最低值的键和值,在本例中为{CICO: 1228}

我如何创建这个对象是这样的:

  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 对象中获取其键的最小数字?我尝试使用排序并采用最低的数字,但键是动态创建的,所以我认为我没有任何可以排序的东西。

最佳答案

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

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 数组。

关于javascript - 从具有动态键的对象列表中获取最小的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53876679/

相关文章:

javascript - CSS 选择器通过属性名称开始匹配元素

Javascript 类仅显示其中一个对象

javascript - TinyMCE表: how to hide advanced properties?

javascript - PaperJS:穿过前一条路径时停止绘制路径

javascript - 简单的Javascript定时计数器

javascript - 如何在将表单输入的属性设置为 "false"后将其更改为禁用 = "true"

javascript - Vue indexOf vs vanilla javascript 用于从数组中选择对象

javascript - 自动提交单选按钮但保持选中状态

javascript - 在 javascript 或 jquery 中转换为字符串数组?

javascript - knockout SelectedOptions 绑定(bind)到 "Selected"属性