如果我有如下所示的字典:
const d = {"S1": [2, 3, 4], "S2": [5, 6, 7, 8]}
我想创建另一个字典,它可以使用相同的键获取 len 或第一个元素作为值,例如:
const n = {"S1": 3, "S2": 4} # len of the value array
我尝试使用如下所示的 map
:
Object.entries(d).map(([k, v]) => console.log(k, v))
它打印键值对,但我如何使用它来创建新字典?
最佳答案
您已经在正确的方向上有了良好的开端。
Object.fromEntries
可用于将键值对数组转换回带有您开始使用的 Object.entries
+ map
的对象
const d = {"S1": [2, 3, 4], "S2": [5, 6, 7, 8]}
const res = Object.fromEntries(Object.entries(d).map(([k,v]) => [k,v.length]))
console.log(res)
作为替代方案,您可以使用 Object.entries
+ reduce
实现相同的效果
const d = {"S1": [2, 3, 4], "S2": [5, 6, 7, 8]}
const res = Object.entries(d).reduce((acc,[k,v]) => ({...acc,[k]:v.length}),{})
console.log(res)
关于Javascript 从另一个字典创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75881721/