我运行了这个
let nums = [6.1, 4.2, 6.2];
let numsGroup = nums.reduce((acc, num) => {
return {...acc, [Math.floor(num)]: num}
}, {});
,得到如下输出//{4: 4.2, 6: 6.2}
但我需要输出{4:[4.2],6:[6.1,6.2]}
您需要为每个数字组创建/添加数组。
let nums = [6.1, 4.2, 6.2];
let numsGroup = nums.reduce((acc, num) => {
const n = Math.floor(num);
return {...acc, [n]: [...(acc[n] ?? []), num]};
}, {});
console.log(numsGroup);
差不多了,只需要将num压入数组:
let nums = [6.1, 4.2, 6.3];
let numsGroup = nums.reduce((acc, num) =>{
(acc[Math.floor(num)] ??= []).push(num);
return acc;
}, {});
console.log(numsGroup);
使用逗号操作符:
let nums = [6.1, 4.2, 6.2];
let numsGroup = nums.reduce((acc, num) => (
acc[Math.floor(num)] ? acc[Math.floor(num)].push(num) : acc[Math.floor(num)] = [num]
,acc),{});
console.log(numsGroup)