使用javascript对象中相同数值对键进行分组的最快方法?

nuw*_*way -4 javascript jquery

'假设我有一个对象

var obj = {
   apples: 2,
   grapes: 1,
   oranges:2,
   carrots:2,
   potatoes: 4
}
Run Code Online (Sandbox Code Playgroud)

我将如何编写一个快速执行的函数来返回按其值分组的键?

return {
    "2": ['apples', 'oranges', 'carrots'],
    "4" : ['potatoes'],
    "1" : ['grapes']

}
Run Code Online (Sandbox Code Playgroud)

tec*_*bar 6

您可以使用简单的方法for..in来实现此目的:

var obj = {
   apples: 2,
   grapes: 1,
   oranges:2,
   carrots:2,
   potatoes: 4
};

var result = {};
for(var key in obj) {
   if(!(obj[key] in result)) result[obj[key]] = [];
   result[obj[key]].push(key);
}

console.log(result);
Run Code Online (Sandbox Code Playgroud)