在javascript中给变量添加函数时如何去结构化字典?

dm7nw8vv  于 2022-12-21  发布在  Java
关注(0)|答案(1)|浏览(94)

假设我有一个函数:

function doubleNo (no) {
   return no * 2
}

这就是我想要的

let oldDict = { var1: 2, var2: 3 }
// console.log(var1) -> 4
// console.log(var2) -> 6 Basically, I want to create a new dictionary such that the function `doubleNo` is applied to each key in the dictionary

现在,我明白了我们可以按照如下方式来解构字典:

const { var1, var2 } = oldDict // This will set values of var1 and var2 as 2, and 3

我看了文档,没有找到一个直接的方法。有没有可能,或者唯一的方法是创建一个let,然后修改它?

let { var1, var2 } = oldDict
var1 = doubleNo(var1)
var2 = doubleNo(var2)

我在想,我们是否可以使用单行方法来解构应用了该方法的字典

6yt4nkrj

6yt4nkrj1#

可以Map到Object.entries上,然后使用Object.fromEntries将其转换回对象。

function doubleNo (no) {
   return no * 2
}
let old = { var1: 2, var2: 3 };
let res = Object.fromEntries(Object.entries(old).map(([k,v])=>[k, doubleNo(v)]));
// you could also destructure var1 and var2 here
console.log(res);

相关问题