You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用for循环遍历对象数组获取余额最高的银行账户问题排查

问题分析与修复

你的代码存在几个关键问题,导致无法正确获取余额最高的账户:

  • 循环条件误用了未定义的array变量,应该使用函数参数bankAccounts
  • 初始化maxAccount后从未更新它,始终拿第一个账户的余额做比较,无法定位真正的最大值
  • 错误地将索引值(还嵌套在数组里)推入结果数组,而非对应的账户对象
  • 核心逻辑缺失:没有实现“找到更大余额时替换当前最大值”的判断

修复后的代码(返回单个账户对象)

const bankAccounts = [
  {
    id: 1,
    name: "Susan",
    balance: 100.32,
    deposits: [150, 30, 221],
    withdrawals: [110, 70.68, 120],
  },
  { id: 2, name: "Morgan", balance: 1100.0, deposits: [1100] },
  {
    id: 3,
    name: "Joshua",
    balance: 18456.57,
    deposits: [4000, 5000, 6000, 9200, 256.57],
    withdrawals: [1500, 1400, 1500, 1500],
  },
  { id: 4, name: "Candy", balance: 0.0 },
  { id: 5, name: "Phil", balance: 18, deposits: [100, 18], withdrawals: [100] },
];

function getClientWithGreatestBalance(bankAccounts) {
  // 处理空数组的边界情况
  if (bankAccounts.length === 0) return null;
  
  let maxAccount = bankAccounts[0];
  // 从第二个元素开始遍历比较
  for (let i = 1; i < bankAccounts.length; i++) {
    if (bankAccounts[i].balance > maxAccount.balance) {
      // 找到更大余额时,更新当前最大账户
      maxAccount = bankAccounts[i];
    }
  }
  // 返回余额最高的单个账户对象
  return maxAccount;
}

// 测试调用
console.log(getClientWithGreatestBalance(bankAccounts));

若需返回包含该账户的数组

如果严格按照你“存入新数组后返回”的需求,调整返回逻辑即可:

function getClientWithGreatestBalance(bankAccounts) {
  if (bankAccounts.length === 0) return [];
  
  let maxAccount = bankAccounts[0];
  for (let i = 1; i < bankAccounts.length; i++) {
    if (bankAccounts[i].balance > maxAccount.balance) {
      maxAccount = bankAccounts[i];
    }
  }
  // 将最大账户存入数组返回
  return [maxAccount];
}

额外场景:多个账户余额同为最高

如果存在多个账户余额并列最高,可以一次性收集所有符合条件的账户:

function getClientWithGreatestBalance(bankAccounts) {
  if (bankAccounts.length === 0) return [];
  
  // 先获取所有账户中的最高余额值
  const maxBalance = Math.max(...bankAccounts.map(account => account.balance));
  // 筛选出所有余额等于最高值的账户
  return bankAccounts.filter(account => account.balance === maxBalance);
}

内容的提问来源于stack exchange,提问作者OldsoulPhil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 15:05:32