javascript - 如何获取数组中每个id的最小值

标签 javascript

我有一个练习,需要按银行 ID 列出包含最低工资客户的数组。

const bills = [ 
   { Idclient: 2,  Idbank: 2, salary: 20000 }, 
   { Idclient: 3,  Idbank: 1, salary: 600 },
   { Idclient: 1,  Idbank: 3, salary: 3000 },
   { Idclient: 4,  Idbank: 1, salary: 2000 }, 
   { Idclient: 6,  Idbank: 2, salary: 300 },
   { Idclient: 5,  Idbank: 3, salary: 2500 },
   { Idclient: 7,  Idbank: 3, salary: 1000 },
];

function BankMinClient() {
  var min = bills.reduce(function(prev, current) {
    return (prev.Idclient > current.salary) ? prev : current
  })

  console.log(min)

  let map = bills.reduce(function(map, bill) {
    var bank_id = bill.Idbank;
    var balance = +bill.salary;
    map[bank_id] = (map[min]) + min

    return map

  }, {})

  return map
};
BankMinClient();

该函数返回整个数组中最低的一个,下面的函数列出了银行,但没有列出关联工资较少的客户。只显示:

 {1: "undefined [object Object]", 2: "undefined [object Object]", 3: 
"undefined [object Object]"}

知道如何解决吗?提前致谢。

期望的结果是:

{1: 600, 2: 300, 3: 1000}

最佳答案

您确实需要像您正在做的那样使用reduce,但您不想添加到现有余额(如果存在现有余额) - 相反,重新分配当前余额:

const bills = [ 
   { Idclient: 2,  Idbank: 2, salary: 20000 }, 
   { Idclient: 3,  Idbank: 1, salary: 600 },
   { Idclient: 1,  Idbank: 3, salary: 3000 },
   { Idclient: 4,  Idbank: 1, salary: 2000 }, 
   { Idclient: 6,  Idbank: 2, salary: 300 },
   { Idclient: 5,  Idbank: 3, salary: 2500 },
   { Idclient: 7,  Idbank: 3, salary: 1000 },
];
console.log(
  bills.reduce((a, { Idbank, salary }) => {
    const currentBalance = a[Idbank];
    if (currentBalance === undefined || salary < currentBalance) {
      a[Idbank] = salary;
    }
    return a;
  }, {})
);

关于javascript - 如何获取数组中每个id的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51165026/

相关文章:

javascript - 如何统一功能(将3个功能连接为1个)

javascript - 表单输入状态颜色不变

javascript - 在 javascript 中使用的引用在 catch-Block 中不可用

JavaScript设置HTTP请求 header value 和FireFox问题

javascript - 创建一个可以从 React 中任何地方访问的变量

javascript - 将 React 组件渲染到 GoogleMaps InfoBox - 停止点击

javascript - 创建一个倒数计时器(占 SetInterval/Timeout Google Chrome 选项卡 "error")

javascript - 返回 false javascript 后表单仍然提交

javascript - 如何在 React 中提交表单时进行多个 api 调用

javascript - 选中复选框时隐藏表格行