如何使用lodash重新排列数据格式

我有一些格式的数据:

{ regionalGames1: [ 1, 2, 3, 4, 5 ], regionalGames2: [ 2, 3, 4, 5, 6 ], regionalGames3: [ 3, 5, 5, 6, 7 ] } 

我怎么能使用lodash重新排列这些数据:

 { 1: [regionalGames1], 2: [regionalGames1, regionalGames2], 3: [regionalGames1, regionalGames2, regionalGames3], 4: [regionalGames1, regionalGames2, regionalGames3], ... } 

等等?

我看着_.groupBy_.keyBy但似乎无法弄清楚。

你可以用Object.keys()forEach()两个循环来做到这一点

 var obj = { regionalGames1: [1, 2, 3, 4, 5], regionalGames2: [2, 3, 4, 5, 6], regionalGames3: [3, 5, 5, 6, 7] } var result = {} Object.keys(obj).forEach(function(e) { obj[e].forEach(function(a) { (!result[a]) ? result[a] = [e] : result[a].push(e); }); }); document.body.innerHTML = '<pre>' + JSON.stringify(result, 0, 4) + '</pre>'; 

不需要使用像lodash这样的第三方库:

 var data = { regionalGames1: [1, 2, 3, 4, 5], regionalGames2: [2, 3, 4, 5, 6], regionalGames3: [3, 5, 5, 6, 7] }; var out = {}; Object.keys(data).map(function(item) { data[item].map(function(id) { if (!out[id]) out[id] = []; out[id].push(item); }); }); console.log(out);