如何使用 lodash 重新排列数据格式
How to rearrange data format using 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);
相关文章:
- 如何通过数据分组将json数据转换为嵌套的json数据格式
- 如何将正确的数据格式从SQL传递到PHP
- 将JSON数据格式化为excel文件
- 具有任意多条线的D3折线图(以及特定的数据格式)
- HTML5 中的不同数据格式
- jquery DataTable 数据格式和警告 - 添加的数据与已知列数不匹配
- D3 十年时间刻度刻度,数据格式为年
- jqplot:barchart的图例数据格式
- 使用Titanium排列数据
- D3,绘图到地图,可能的数据格式
- AJAX Post网络上的数据格式
- ngTagsInput:保留原始数据提供者的数据格式
- Javascript:数据格式,类似于Spring Property Editors
- 将数据格式从单个对象转换为键值对的对象数组
- JavaScript函数来重新排列日期格式
- 散景中多行的数据格式
- 如何使用javascript将数据格式“YYYY-mm-dd hh:mm:ss”转换为“dd-mm-YYYY hh:mm
- D3 堆栈区域数据格式问题
- IE 中的数据格式 JavaScript 库
- 如何使用 lodash 重新排列数据格式