Joh*_*ith 6 javascript arrays reduce json selection
我最近开始学习 JavaScript,并面临着一个我无法以任何方式完成的任务,每次我得到我需要的错误数据\n有一个包含银行交易数据的对象,我需要进行选择并形成使用filter、map或reduce创建一个新对象:
\n我们假设卡上的初始余额 = 0。
\n将其形式化为 task_1(arr) 函数,其中 arr 是包含所有月份数据的源数组。
\n输出格式:
\n[\n { year: 2019, month: 11, opsCount: 27 },\n { year: 2019, month: 10, opsCount: 26 },\n { year: 2019, month: 8, opsCount: 24 }\n]\nRun Code Online (Sandbox Code Playgroud)\n如果提款率 < 0.15,则为黄金。
\n如果提款率 < 0.3,则为白银。
\n在所有其他情况下均为铜牌。
\n将其形式化为task_2(year,month,arr)函数,其中year、month是所需的一个月,arr是包含按月所有数据的原始数组。
\n输出格式:
\n{\ndate: \'2019-01-31\xe2\x80\x99,\nmonthBalance: 3829,\nmonthWithrawal: 33800,\nwithdrawalRate: 0.3133\nrank: \'Bronze\xe2\x80\x99\n}\nRun Code Online (Sandbox Code Playgroud)\n输出格式:
\n[\n{\ndate: \'2019-01-31\xe2\x80\x99,\nmonthBalance: 3829,\ntotalBalance: 3829,\nmonthWithrawal: 33800,\nwithdrawalRate: 0.3133\nrank: \xe2\x80\x99Bronze\'\n},\n...\n]\nRun Code Online (Sandbox Code Playgroud)\n将其形式化为 task_3(arr) 函数,其中 arr 是包含数据的源数组。
\nJSON数据:
\n[\n { "year": 2019, "month": 1, "day": 1, "type": "replenishment", "amount": 79817 },\n { "year": 2019, "month": 1, "day": 3, "type": "payment", "amount": 11334 },\n { "year": 2019, "month": 1, "day": 5, "type": "withdrawal", "amount": 26700 },\n { "year": 2019, "month": 1, "day": 5, "type": "payment", "amount": 15475 },\n { "year": 2019, "month": 1, "day": 6, "type": "payment", "amount": 4818 },\n { "year": 2019, "month": 1, "day": 6, "type": "payment", "amount": 1893 },\n { "year": 2019, "month": 1, "day": 7, "type": "payment", "amount": 3844 },\n { "year": 2019, "month": 1, "day": 7, "type": "withdrawal", "amount": 3100 },\n { "year": 2019, "month": 1, "day": 7, "type": "payment", "amount": 3230 },\n { "year": 2019, "month": 1, "day": 7, "type": "payment", "amount": 2427 },\n { "year": 2019, "month": 1, "day": 9, "type": "replenishment", "amount": 15835 },\n { "year": 2019, "month": 1, "day": 10, "type": "payment", "amount": 9670 },\n { "year": 2019, "month": 1, "day": 11, "type": "payment", "amount": 582 },\n { "year": 2019, "month": 1, "day": 11, "type": "withdrawal", "amount": 1100 },\n { "year": 2019, "month": 1, "day": 11, "type": "replenishment", "amount": 5971 },\n { "year": 2019, "month": 1, "day": 12, "type": "payment", "amount": 173 },\n { "year": 2019, "month": 1, "day": 14, "type": "withdrawal", "amount": 1500 },\n { "year": 2019, "month": 1, "day": 14, "type": "payment", "amount": 3641 },\n { "year": 2019, "month": 1, "day": 16, "type": "payment", "amount": 4669 },\n { "year": 2019, "month": 1, "day": 18, "type": "payment", "amount": 2460 },\n { "year": 2019, "month": 1, "day": 19, "type": "payment", "amount": 1307 },\n { "year": 2019, "month": 1, "day": 20, "type": "withdrawal", "amount": 1400 },\n { "year": 2019, "month": 1, "day": 21, "type": "payment", "amount": 952 },\n { "year": 2019, "month": 1, "day": 21, "type": "payment", "amount": 561 },\n { "year": 2019, "month": 1, "day": 21, "type": "replenishment", "amount": 6236 },\n { "year": 2019, "month": 1, "day": 22, "type": "payment", "amount": 888 },\n { "year": 2019, "month": 1, "day": 22, "type": "payment", "amount": 2306 },\n { "year": 2019, "month": 2, "day": 1, "type": "replenishment", "amount": 84839 },\n { "year": 2019, "month": 2, "day": 1, "type": "withdrawal", "amount": 27700 },\n { "year": 2019, "month": 2, "day": 1, "type": "payment", "amount": 11145 },\n { "year": 2019, "month": 2, "day": 2, "type": "payment", "amount": 4075 },\n { "year": 2019, "month": 2, "day": 4, "type": "withdrawal", "amount": 10900 },\n { "year": 2019, "month": 2, "day": 6, "type": "payment", "amount": 10537 },\n { "year": 2019, "month": 2, "day": 6, "type": "payment", "amount": 6001 },\n { "year": 2019, "month": 2, "day": 7, "type": "withdrawal", "amount": 7300 },\n { "year": 2019, "month": 2, "day": 10, "type": "withdrawal", "amount": 1500 },\n { "year": 2019, "month": 2, "day": 10, "type": "payment", "amount": 3584 },\n { "year": 2019, "month": 2, "day": 11, "type": "payment", "amount": 701 },\n { "year": 2019, "month": 3, "day": 1, "type": "replenishment", "amount": 84771 },\n { "year": 2019, "month": 3, "day": 3, "type": "withdrawal", "amount": 22700 },\n { "year": 2019, "month": 3, "day": 5, "type": "payment", "amount": 12352 },\n { "year": 2019, "month": 3, "day": 8, "type": "payment", "amount": 2795 },\n { "year": 2019, "month": 3, "day": 11, "type": "withdrawal", "amount": 16600 },\n { "year": 2019, "month": 3, "day": 11, "type": "replenishment", "amount": 4141 },\n { "year": 2019, "month": 3, "day": 11, "type": "payment", "amount": 9854 },\n { "year": 2019, "month": 3, "day": 13, "type": "withdrawal", "amount": 1200 },\n { "year": 2019, "month": 3, "day": 14, "type": "payment", "amount": 11573 },\n { "year": 2019, "month": 3, "day": 14, "type": "payment", "amount": 5138 },\n { "year": 2019, "month": 3, "day": 15, "type": "payment", "amount": 731 },\n { "year": 2019, "month": 3, "day": 17, "type": "payment", "amount": 5053 },\n { "year": 2019, "month": 3, "day": 19, "type": "withdrawal", "amount": 400 },\n { "year": 2019, "month": 3, "day": 20, "type": "payment", "amount": 1745 },\n { "year": 2019, "month": 3, "day": 20, "type": "payment", "amount": 602 },\n { "year": 2019, "month": 3, "day": 21, "type": "payment", "amount": 178 },\n { "year": 2019, "month": 3, "day": 22, "type": "payment", "amount": 353 },\n { "year": 2019, "month": 3, "day": 23, "type": "payment", "amount": 837 },\n { "year": 2019, "month": 3, "day": 23, "type": "payment", "amount": 330 },\n { "year": 2019, "month": 3, "day": 23, "type": "payment", "amount": 799 },\n { "year": 2019, "month": 3, "day": 24, "type": "payment", "amount": 294 },\n { "year": 2019, "month": 3, "day": 24, "type": "payment", "amount": 260 },\n { "year": 2019, "month": 3, "day": 25, "type": "withdrawal", "amount": 200 },\n { "year": 2019, "month": 4, "day": 1, "type": "replenishment", "amount": 88656 },\n { "year": 2019, "month": 4, "day": 4, "type": "payment", "amount": 37852 },\n { "year": 2019, "month": 4, "day": 7, "type": "payment", "amount": 9365 },\n { "year": 2019, "month": 4, "day": 8, "type": "payment", "amount": 16701 },\n { "year": 2019, "month": 4, "day": 11, "type": "payment", "amount": 8979 },\n { "year": 2019, "month": 4, "day": 11, "type": "payment", "amount": 1971 },\n { "year": 2019, "month": 4, "day": 13, "type": "payment", "amount": 1261 },\n { "year": 2019, "month": 4, "day": 13, "type": "withdrawal", "amount": 800 },\n { "year": 2019, "month": 4, "day": 15, "type": "payment", "amount": 5553 },\n { "year": 2019, "month": 4, "day": 17, "type": "payment", "amount": 2593 },\n { "year": 2019, "month": 4, "day": 18, "type": "replenishment", "amount": 6915 },\n { "year": 2019, "month": 4, "day": 19, "type": "replenishment", "amount": 17647 },\n { "year": 2019, "month": 4, "day": 21, "type": "payment", "amount": 13814 },\n { "year": 2019, "month": 4, "day": 22, "type": "payment", "amount": 2707 },\n { "year": 2019, "month": 4, "day": 22, "type": "withdrawal", "amount": 1300 },\n { "year": 2019, "month": 4, "day": 22, "type": "withdrawal", "amount": 2900 },\n { "year": 2019, "month": 4, "day": 23, "type": "replenishment", "amount": 10709 },\n { "year": 2019, "month": 4, "day": 23, "type": "payment", "amount": 686 },\n { "year": 2019, "month": 4, "day": 23, "type": "withdrawal", "amount": 5100 },\n { "year": 2019, "month": 4, "day": 23, "type": "payment", "amount": 3830 },\n { "year": 2019, "month": 5, "day": 1, "type": "replenishment", "amount": 59877 },\n { "year": 2019, "month": 5, "day": 2, "type": "payment", "amount": 14095 },\n { "year": 2019, "month": 5, "day": 5, "type": "payment", "amount": 10858 },\n { "year": 2019, "month": 5, "day": 8, "type": "payment", "amount": 9412 },\n { "year": 2019, "month": 5, "day": 11, "type": "replenishment", "amount": 6892 },\n { "year": 2019, "month": 5, "day": 11, "type": "payment", "amount": 17541 },\n { "year": 2019, "month": 5, "day": 11, "type": "payment", "amount": 2666 },\n { "year": 2019, "month": 5, "day": 11, "type": "payment", "amount": 3935 },\n { "year": 2019, "month": 5, "day": 12, "type": "withdrawal", "amount": 2600 },\n { "year": 2019, "month": 5, "day": 14, "type": "payment", "amount": 2096 },\n { "year": 2019, "month": 5, "day": 14, "type": "replenishment", "amount": 2733 },\n { "year": 2019, "month": 5, "day": 15, "type": "replenishment", "amount": 538 },\n { "year": 2019, "month": 5, "day": 15, "type": "payment", "amount": 5324 },\n { "year": 2019, "month": 5, "day": 15, "type": "payment", "amount": 2490 },\n { "year": 2019, "month": 5, "day": 15, "type": "payment", "amount": 3510 },\n { "year": 2019, "month": 5, "day": 17, "type": "withdrawal", "amount": 300 },\n { "year": 2019, "month": 5, "day": 17, "type": "payment", "amount": 133 },\n { "year": 2019, "month": 6, "day": 1, "type": "replenishment", "amount": 89064 },\n { "year": 2019, "month": 6, "day": 2, "type": "payment", "amount": 7613 },\n { "year": 2019, "month": 6, "day": 2, "type": "payment", "amount": 33742 },\n { "year": 2019, "month": 6, "day": 5, "type": "withdrawal", "amount": 7200 },\n { "year": 2019, "month": 6, "day": 6, "type": "payment", "amount": 15125 },\n { "year": 2019, "month": 6, "day": 9, "type": "payment", "amount": 3379 },\n { "year": 2019, "month": 6, "day": 10, "type": "payment", "amount": 1260 },\n { "year": 2019, "month": 6, "day": 12, "type": "payment", "amount": 11066 },\n { "year": 2019, "month": 6, "day": 12, "type": "replenishment", "amount": 7050 },\n { "year": 2019, "month": 6, "day": 12, "type": "payment", "amount": 7531 },\n { "year": 2019, "month": 6, "day": 13, "type": "payment", "amount": 4776 },\n { "year": 2019, "month": 6, "day": 13, "type": "replenishment", "amount": 4456 },\n { "year": 2019, "month": 6, "day": 14, "type": "replenishment", "amount": 7998 },\n { "year": 2019, "month": 6, "day": 16, "type": "payment", "amount": 2437 },\n { "year": 2019, "month": 6, "day": 16, "type": "replenishment", "amount": 11729 },\n { "year": 2019, "month": 6, "day": 18, "type": "payment", "amount": 11216 },\n { "year": 2019, "month": 6, "day": 19, "type": "payment", "amount": 3420 },\n { "year": 2019, "month": 6, "day": 19, "type": "payment", "amount": 1339 },\n { "year": 2019, "month": 6, "day": 20, "type": "payment", "amount": 5578 },\n { "year": 2019, "month": 6, "day": 21, "type": "withdrawal", "amount": 1600 },\n { "year": 2019, "month": 6, "day": 21, "type": "withdrawal", "amount": 400 },\n { "year": 2019, "month": 7, "day": 1, "type": "replenishment", "amount": 51749 },\n { "year": 2019, "month": 7, "day": 2, "type": "payment", "amount": 2875 },\n { "year": 2019, "month": 7, "day": 2, "type": "payment", "amount": 10315 },\n { "year": 2019, "month": 7, "day": 5, "type": "payment", "amount": 18501 },\n { "year": 2019, "month": 7, "day": 5, "type": "payment", "amount": 12728 },\n { "year": 2019, "month": 7, "day": 7, "type": "payment", "amount": 4505 },\n { "year": 2019, "month": 7, "day": 8, "type": "payment", "amount": 2758 },\n { "year": 2019, "month": 7, "day": 8, "type": "payment", "amount": 60 },\n { "year": 2019, "month": 7, "day": 10, "type": "withdrawal", "amount": 1100 },\n { "year": 2019, "month": 7, "day": 12, "type": "withdrawal", "amount": 1000 },\n { "year": 2019, "month": 7, "day": 13, "type": "payment", "amount": 151 },\n { "year": 2019, "month": 8, "day": 1, "type": "replenishment", "amount": 85156 },\n { "year": 2019, "month": 8, "day": 1, "type": "payment", "amount": 33978 },\n { "year": 2019, "month": 8, "day": 2, "type": "payment", "amount": 6548 },\n { "year": 2019, "month": 8, "day": 3, "type": "payment", "amount": 5909 },\n { "year": 2019, "month": 8, "day": 6, "type": "payment", "amount": 2326 },\n { "year": 2019, "month": 8, "day": 6, "type": "payment", "amount": 17798 },\n { "year": 2019, "month": 8, "day": 9, "type": "replenishment", "amount": 10770 },\n { "year": 2019, "month": 8, "day": 10, "type": "withdrawal", "amount": 7400 },\n { "year": 2019, "month": 8, "day": 12, "type": "payment", "amount": 6065 },\n { "year": 2019, "month": 8, "day": 14, "type": "withdrawal", "amount": 900 },\n { "year": 2019, "month": 8, "day": 14, "type": "withdrawal", "amount": 1400 },\n { "year": 2019, "month": 8, "day": 14, "type": "payment", "amount": 4673 },\n { "year": 2019, "month": 8, "day": 15, "type": "payment", "amount": 960 },\n { "year": 2019, "month": 8, "day": 15, "type": "payment", "amount": 1085 },\n { "year": 2019, "month": 8, "day": 17, "type": "payment", "amount": 3723 },\n { "year": 2019, "month": 8, "day": 17, "type": "payment", "amount": 2522 },\n { "year": 2019, "month": 8, "day": 19, "type": "replenishment", "amount": 2496 },\n { "year": 2019, "month": 8, "day": 20, "type": "payment", "amount": 876 },\n { "year": 2019, "month": 8, "day": 20, "type": "payment", "amount": 2504 },\n { "year": 2019, "month": 8, "day": 21, "type": "payment", "amount": 826 },\n { "year": 2019, "month": 8, "day": 22, "type": "payment", "amount": 768 },\n { "year": 2019, "month": 8, "day": 23, "type": "withdrawal", "amount": 700 },\n { "year": 2019, "month": 8, "day": 23, "type": "payment", "amount": 190 },\n { "year": 2019, "month": 8, "day": 24, "type": "payment", "amount": 235 },\n { "year": 2019, "month": 9, "day": 1, "type": "replenishment", "amount": 95512 },\n { "year": 2019, "month": 9, "day": 3, "type": "payment", "amount": 26758 },\n { "year": 2019, "month": 9, "day": 3, "type": "replenishment", "amount": 8377 },\n { "year": 2019, "month": 9, "day": 4, "type": "payment", "amount": 30865 },\n { "year": 2019, "month": 9, "day": 4, "type": "withdrawal", "amount": 12800 },\n { "year": 2019, "month": 9, "day": 7, "type": "payment", "amount": 10518 },\n { "year": 2019, "month": 9, "day": 8, "type": "payment", "amount": 11007 },\n { "year": 2019, "month": 9, "day": 10, "type": "payment", "amount": 5613 },\n { "year": 2019, "month": 9, "day": 10, "type": "withdrawal", "amount": 1700 },\n { "year": 2019, "month": 9, "day": 12, "type": "payment", "amount": 2237 },\n { "year": 2019, "month": 9, "day": 14, "type": "payment", "amount": 885 },\n { "year": 2019, "month": 9, "day": 14, "type": "payment", "amount": 977 },\n { "year": 2019, "month": 9, "day": 15, "type": "payment", "amount": 766 },\n { "year": 2019, "month": 9, "day": 17, "type": "payment", "amount": 360 },\n { "year": 2019, "month": 9, "day": 18, "type": "payment", "amount": 116 },\n { "year": 2019, "month": 9, "day": 18, "type": "withdrawal", "amount": 200 },\n { "year": 2019, "month": 9, "day": 19, "type": "payment", "amount": 115 },\n { "year": 2019, "month": 9, "day": 20, "type": "payment", "amount": 50 },\n { "year": 2019, "month": 9, "day": 21, "type": "payment", "amount": 32 },\n { "year": 2019, "month": 10, "day": 1, "type": "replenishment", "amount": 90475 },\n { "year": 2019, "month": 10, "day": 1, "type": "replenishment", "amount": 8845 },\n { "year": 2019, "month": 10, "day": 2, "type": "payment", "amount": 7121 },\n { "year": 2019, "month": 10, "day": 3, "type": "payment", "amount": 27955 },\n { "year": 2019, "month": 10, "day": 3, "type": "payment", "amount": 23079 },\n { "year": 2019, "month": 10, "day": 4, "type": "payment", "amount": 5948 },\n { "year": 2019, "month": 10, "day": 7, "type": "withdrawal", "amount": 4400 },\n { "year": 2019, "month": 10, "day": 8, "type": "payment", "amount": 9677 },\n { "year": 2019, "month": 10, "day": 9, "type": "payment", "amount": 3912 },\n { "year": 2019, "month": 10, "day": 9, "type": "replenishment", "amount": 3870 },\n { "year": 2019, "month": 10, "day": 9, "type": "payment", "amount": 6949 },\n { "year": 2019, "month": 10, "day": 10, "type": "withdrawal", "amount": 3400 },\n { "year": 2019, "month": 10, "day": 10, "type": "replenishment", "amount": 7471 },\n { "year": 2019, "month": 10, "day": 10, "type": "payment", "amount": 5962 },\n { "year": 2019, "month": 10, "day": 10, "type": "payment", "amount": 4990 },\n { "year": 2019, "month": 10, "day": 10, "type": "withdrawal", "amount": 3000 },\n { "year": 2019, "month": 10, "day": 11, "type": "withdrawal", "amount": 200 },\n { "year": 2019, "month": 10, "day": 12, "type": "withdrawal", "amount": 1300 },\n { "year": 2019, "month": 10, "day": 13, "type": "payment", "amount": 986 },\n { "year": 2019, "month": 10, "day": 14, "type": "replenishment", "amount": 4225 },\n { "year": 2019, "month": 10, "day": 15, "type": "withdrawal", "amount": 900 },\n { "year": 2019, "month": 10, "day": 17, "type": "payment", "amount": 864 },\n { "year": 2019, "month": 10, "day": 17, "type": "withdrawal", "amount": 1000 },\n { "year": 2019, "month": 10, "day": 18, "type": "payment", "amount": 801 },\n { "year": 2019, "month": 10, "day": 19, "type": "withdrawal", "amount": 300 },\n { "year": 2019, "month": 10, "day": 20, "type": "payment", "amount": 530 },\n { "year": 2019, "month": 11, "day": 1, "type": "replenishment", "amount": 80285 },\n { "year": 2019, "month": 11, "day": 3, "type": "payment", "amount": 38155 },\n { "year": 2019, "month": 11, "day": 6, "type": "payment", "amount": 10260 },\n { "year": 2019, "month": 11, "day": 9, "type": "payment", "amount": 11013 },\n { "year": 2019, "month": 11, "day": 10, "type": "payment", "amount": 1232 },\n { "year": 2019, "month": 11, "day": 12, "type": "withdrawal", "amount": 5100 },\n { "year": 2019, "month": 11, "day": 12, "type": "payment", "amount": 1192 },\n { "year": 2019, "month": 11, "day": 13, "type": "withdrawal", "amount": 4500 },\n { "year": 2019, "month": 11, "day": 14, "type": "replenishment", "amount": 4304 },\n { "year": 2019, "month": 11, "day": 15, "type": "withdrawal", "amount": 700 },\n { "year": 2019, "month": 11, "day": 15, "type": "replenishment", "amount": 15857 },\n { "year": 2019, "month": 11, "day": 17, "type": "payment", "amount": 9134 },\n { "year": 2019, "month": 11, "day": 19, "type": "payment", "amount": 8090 },\n { "year": 2019, "month": 11, "day": 20, "type": "payment", "amount": 2117 },\n { "year": 2019, "month": 11, "day": 20, "type": "withdrawal", "amount": 2700 },\n { "year": 2019, "month": 11, "day": 21, "type": "withdrawal", "amount": 2200 },\n { "year": 2019, "month": 11, "day": 21, "type": "payment", "amount": 258 },\n { "year": 2019, "month": 11, "day": 21, "type": "withdrawal", "amount": 1200 },\n { "year": 2019, "month": 11, "day": 21, "type": "payment", "amount": 1966 },\n { "year": 2019, "month": 11, "day": 21, "type": "withdrawal", "amount": 200 },\n { "year": 2019, "month": 11, "day": 21, "type": "payment", "amount": 493 },\n { "year": 2019, "month": 11, "day": 21, "type": "payment", "amount
小智 2
解决这些问题这里有提示“GroupBy using reduce”
至于任务1
function task_1(arr) {
// Dictionary of Month to Object.
const groupedByMonth = arr.reduce(function (acc, currentValue) {
let groupKey = currentValue.month;
if (!acc[groupKey]) {
acc[groupKey] = {
year: currentValue.year,
month: currentValue.month,
opsCount: 0
};
}
acc[groupKey].opsCount += 1; // ++
return acc;
}, {});
// Sort by opsCount
function opsSort(a, b) { return b.opsCount - a.opsCount };
return Object
.values(groupedByMonth) // Array of Values
.sort(opsSort)
.slice(0, 3) // Top 3
}
Run Code Online (Sandbox Code Playgroud)
一旦你理解了任务 1 是如何解决的,任务 2 就会变得更简单一些
任务 2 的解决方案
function getEndOfMonth(year, month) {
const date = new Date(year, month, 0);
let monthStr = "";
if (month < 10) {
monthStr += "0";
}
monthStr += month;
return year + "-" + monthStr + "-" + date.getDate();
}
function getRank(rate) {
if (rate < 0.15)
return 'Gold';
if (rate < 0.3)
return 'Gold';
return 'Bronze';
}
function task_2(arr) {
const groupedByMonth = arr.reduce(function (acc, currentValue) {
let groupKey = currentValue.month;
if (!acc[groupKey]) {
acc[groupKey] = {
date: getEndOfMonth(currentValue.year, currentValue.month),
monthWithrawal: 0,
totalDebits: 0,
totalDeposits: 0
};
}
// Based on type calculate value.
if (currentValue.type === "replenishment") {
acc[groupKey].totalDeposits += currentValue.amount;
} else if (currentValue.type === "payment") {
acc[groupKey].totalDebits += currentValue.amount;
} else if (currentValue.type === "withdrawal") {
acc[groupKey].monthWithrawal += currentValue.amount;
}
return acc;
}, {});
return Object
.values(groupedByMonth) // Array of Values
.map(function (ele) {
const withdrawalRate = ele.monthWithrawal / ele.totalDeposits;
return {
date: ele.date,
monthBalance: ele.totalDeposits - ele.totalDebits - ele.monthWithrawal,
monthWithrawal: ele.monthWithrawal,
withdrawalRate,
rank: getRank(withdrawalRate)
};
});
}
Run Code Online (Sandbox Code Playgroud)
如果您已经解决了任务 2,那么任务 3 只是将reduce/map 添加到任务2 的解决方案中。
function task_3(arr) {
// Assuming that task_2 function is defined.
const task2 = task_2(arr);
// Can be Solved using reduce.
return task2
.map(function (currentValue, index, array) {
const tmp = currentValue;
tmp.totalBalance = tmp.monthBalance;
if (index > 0) { // Not the first element.
tmp.totalBalance += array[index - 1].totalBalance;
}
return tmp;
})
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |