简体   繁体   English

如何优化以下 JavaScript 函数

[英]How can I optimize the following JavaScript function

I'm trying to optimize my code or see if there's a better way to do it.我正在尝试优化我的代码或看看是否有更好的方法来做到这一点。 Given values for acctData and balances below, I need to return an array of accounts filtered by the user name.给定下面的 acctData 和 balances 值,我需要返回一个按用户名过滤的帐户数组。 my code works我的代码有效

 const acctData = [{ acctNum: "AAA - 1234", user: "Alice" }, { acctNum: "AAA - 5231", user: "Bob" }, { acctNum: "AAA - 9921", user: "Alice" }, { acctNum: "AAA - 8191", user: "Alice" } ]; const balance = { "AAA - 1234": 4593.22, "AAA - 9921": 0, "AAA - 5231": 232142.5, "AAA - 8191": 4344 }; const combinedAccBalance = JSON.parse(JSON.stringify(acctData)); const getAccountNumbers = (filterByUser) => { return combinedAccBalance .filter(acc => { acc.balance = balance[acc.acctNum]; return acc.user === filterByUser; }) .sort((a, b) => { return a.balance - b.balance; }) .map(fa => { return fa.acctNum; }); }; console.log(getAccountNumbers("Alice")); //Returns ["AAA - 9921", "AAA - 8191", "AAA - 1234"]

you can just skip the deep clone part and do something like this:您可以跳过深度克隆部分并执行以下操作:

 const acctData = [{ acctNum: "AAA - 1234", user: "Alice" }, { acctNum: "AAA - 5231", user: "Bob" }, { acctNum: "AAA - 9921", user: "Alice" }, { acctNum: "AAA - 8191", user: "Alice" } ]; const balance = { "AAA - 1234": 4593.22, "AAA - 9921": 0, "AAA - 5231": 232142.5, "AAA - 8191": 4344 }; let getAccountNumbers = (filterByUser) => { return acctData .filter(acc => acc.user === filterByUser) .sort((a, b) => { return balance[a.acctNum] - balance[b.acctNum]; }) .map(fa => { return fa.acctNum; }); }; console.log(getAccountNumbers("Alice")); //Returns ["AAA - 9921", "AAA - 8191", "AAA - 1234"]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM