【发布时间】:2021-07-27 06:38:53
【问题描述】:
我有一个函数会给出以下结果;
const points = [10,5,2];
const data =
[{name:"John",ranking:1},{name:"Sally",ranking:2},{name:"Tom",ranking:3},
{name:"Harry",ranking:4},{name:"Jess",ranking:5},{name:"Kelly",ranking:6}];
const result = data.reduce((result,{name,rank} =>
(result[name]=points[rank-1],result),{});
console.log(result);
{"John": 10,"Sally": 5,"Tom": 2,"Harry": undefined, "Jess": undefined ,"Kelly": undefined}
我希望所有排名第 3 或以上的玩家都获得数组 points 的最后一个值,即 2,而不是未定义,我该如何修改函数以实现以下结果?谢谢!
{"John": 10,"Sally": 5,"Tom": 2,"Harry": 2,"Jess": 2,"Kelly": 2}
【问题讨论】:
-
您是指索引中的
Math.min(rank, points.length) - 1吗?
标签: javascript arrays mapping reduce