我有一个结构非常大的JSON对象,如下所示:
{A : 1, B : 2, C : 3, D : 4}
我需要一个可以与对象中的键交换值的函数,但我不知道该怎么做。我需要这样的输出:
{1 : A, 2 : B, 3 : C, 4 : D}
有什么办法可以手动创建一个新对象,其中所有内容都可以交换? 谢谢
function swap(json){ var ret = {}; for(var key in json){ ret[json[key]] = key; } return ret; }
这里的示例FIDDLE不要忘记打开控制台以查看结果。
ES6 版本:
static objectFlip(obj) { const ret = {}; Object.keys(obj).forEach(key => { ret[obj[key]] = key; }); return ret; }
或使用Array.reduce()和Object.keys()
static objectFlip(obj) { return Object.keys(obj).reduce((ret, key) => { ret[obj[key]] = key; return ret; }, {}); }
或使用Array.reduce()和Object.entries()
static objectFlip(obj) { return Object.entries(obj).reduce((ret, entry) => { const [ key, value ] = entry; ret[ value ] = key; return ret; }, {}); }