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

How to rearrange data format using lodash

本文关键字:排列 数据格式 新排列 何使用 lodash      更新时间:2023-09-26

我有一些格式的数据:

{ 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);