我想要反转一个对象的映射(该对象可能具有重复的值)。 例如:
const city2country = {
'Amsterdam': 'Netherlands',
'Rotterdam': 'Netherlands',
'Paris': 'France'
};
reverseMapping(city2country)
应该输出:
{
'Netherlands': ['Amsterdam', 'Rotterdam'],
'France': ['Paris']
}
我想了一个天真的解决方案:
const reverseMapping = (obj) => {
const reversed = {};
Object.keys(obj).forEach((key) => {
reversed[obj[key]] = reversed[obj[key]] || [];
reversed[obj[key]].push(key);
});
return reversed;
};
但我相信一定有更加简洁、短小的方式,最好还能够原型化,这样我就可以直接执行:
const country2cities = city2country.reverse();
var objKey=obj[key];
来使它更易读。你已经有一个可用的代码了,不要浪费时间试图压缩它(除非这是你的实际目标)。 - diynevala