首页 > 解决方案 > 将数字数组转换为键,后跟与键匹配的索引

问题描述

JavaScript 新手。我正在尝试转换一组数字

[ 12,14,12,10,11,10 ]

放入一个对象数组,其中键作为数组中的数字,后跟一个索引数组,其中出现数字,例如

{'12': [0, 2]], '10': [3,5], '11': 4 }

我看到了几个例子,reduce但我不明白如何为给定的键创建项目数组。

标签: javascript

解决方案


您可以Array#reduce将对象用作累加器。

回调被赋予前一个累加器、当前数组元素及其索引。在将当前索引添加到该数组之前,如果尚未使用逻辑 nullish 赋值运算符进行设置,我们可以将当前元素的值的属性初始化为空数组。

let arr = [ 12,14,12,10,11,10 ];
let res = arr.reduce((acc, curr, i)=>
    ((acc[curr] ??= []).push(i), acc), {});
console.log(res);
.as-console-wrapper{max-height:100%!important}


推荐阅读