我有一个非常大的 JSON 对象,其结构如下:
{A : 1, B : 2, C : 3, D : 4}
我需要一个可以用对象中的键交换值的函数,但我不知道该怎么做。我需要这样的输出:
{1 : A, 2 : B, 3 : C, 4 : D}
有什么办法可以手动创建一个交换所有内容的新对象吗?
谢谢
原文由 C1D 发布,翻译遵循 CC BY-SA 4.0 许可协议
现在我们有了 Object.fromEntries:
const f = obj => Object.fromEntries(Object.entries(obj).map(a => a.reverse()))
console.log(
f({A : 'a', B : 'b', C : 'c'})
) // => {a : 'A', b : 'B', c : 'C'}
或者:
const f = obj => Object.fromEntries(Object.entries(obj).map(([k, v]) => [v, k]))
console.log(
f({A : 'a', B : 'b', C : 'c'})
) // => {a : 'A', b : 'B', c : 'C'}
(更新以删除多余的括号 - 感谢@devin-g-rhode)
原文由 Sc0ttyD 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答2.6k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
这里的示例 FIDDLE 不要忘记打开您的控制台以查看结果。
ES6 版本:
或者使用 Array.reduce() & Object.keys()
或者使用 Array.reduce() & Object.entries()