如何将对象字面量属性值作为参数传递并批量调用目标函数?
实现方案
首先注意到示例中candidate3的姓名字段为nombre,和其他两个候选者的name字段不一致,下述实现已经做了兼容处理,同时保证严格按照candidate1→candidate2→candidateN的顺序执行:
// 1. 提取候选者并按序号排序,确保执行顺序符合要求 const orderedCandidates = Object.entries(candidates) .sort(([keyA], [keyB]) => { const idxA = Number(keyA.replace('candidate', '')) const idxB = Number(keyB.replace('candidate', '')) return idxA - idxB }) .map(([, candidate]) => candidate) // 2. 遍历执行目标函数 orderedCandidates.forEach(candidate => { const name = candidate.name || candidate.nombre someFunction(name, candidate.party, candidate.votes) })
简化版本
如果确认所有候选者的姓名字段统一为name,且可以依赖JS引擎的对象键遍历顺序(现代浏览器/Node.js环境均支持),可以直接简化为:
Object.values(candidates).forEach(({name, party, votes}) => { someFunction(name, party, votes) })
内容的提问来源于stack exchange,提问作者Adehmar
相关产品推荐
相关产品推荐

