我有以下数据:
var jsonData = {
"data": [
{
"id": 1,
"name": "London",
"date": "2018-04-20",
"temp": 15,
"rain": 2,
"wind": 50,
"humidity" : 80,
}
]
};
这是我当前编码的映射部分:
var mainContainer = {
temp : jsonData.data.map (a => a.temp),
rain : jsonData.data.map (a => a.rain), // jsonData.data.map (a => ) being repeated
wind : jsonData.data.map (a => a.wind), // jsonData.data.map (a => ) being repeated
humidity: jsonData.data.map (a => a.humidity) // jsonData.data.map (a => ) being repeated
};
console.log(mainContainer);
有没有什么方法可以干燥代码,这样我就不用重复映射函数了?唯一的区别在于属性名称和映射部分。
最佳答案
创建要映射的属性名称数组
var props = ["temp", "rain", "wind", "humidity" ];
现在使用 reduce
迭代此 props
var mainContainer = props.reduce( (a,c) => {
a[c] = jsonData.data.map (s => s[c]);
return a;
}, {});
关于javascript - 如何DRY映射函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49938082/