javascript - javascript。使用带有变量项的映射在数组中迭代
问题描述
对不起,如果重复了一些问题,但我搜索了很多,没有找到任何东西。我必须在js中填写表格。为此,我获取对象数组(中心)的值并应用地图。一切都很完美。
centers = [
{ 'center': 'Center 1',
'datos': { "key1":4.67,
"key2":3.56
}
},
{ 'center': 'Center 2',
'datos': { "key1":0.34,
"key2":5}
},
{ 'center': 'Center 3',
'datos': { "key1":3.7,
"key2":2.5}
}
]
let result = centers.map(res => {
let columns = {'column1':res.datos.key1, 'column2':res.datos.key2}
return columns;
})
/* result = [
[
{ column1: 4.67, column2: 3.56 },
{ column1: 0.34, column2: 5 },
{ column1: 3.7, column2: 2.5 }
]
]
*/
但是,“key1 ...... key1000”项目很多,我想像这样在地图功能中实现它们
var cc = ['key1','key2','key3','key4','key5'];
let result = centers.map(res => {
let columns = {'column1':res.datos.cc[0], 'column2':res.datos.cc[1], ...........}
return columns;
})
但它不采用变量的值。地图可以吗?谢谢你。
解决方案
const centers = [{
'center': 'Center 1',
'datos': {
"key1": 4.67,
"key2": 3.56
}
}, {
'center': 'Center 2',
'datos': {
"key1": 0.34,
"key2": 5
}
}, {
'center': 'Center 3',
'datos': {
"key1": 3.7,
"key2": 2.5
}
}]
const result = centers.map(res => Object.entries(res.datos).reduce((acc, [key, value]) => ({ ...acc,
[key.replace('key', 'column')]: value
}), {}))
console.log(result)
推荐阅读
- angular - 如何正确使用 Angular 11 / TS 4 上的属性的默认值?
- java - 如何使用 Discord JDA 在单个命令行上处理多个字符串和不同类型的数据?
- c# - 无法为 PredicateBuilder 设置参数
- asp.net-core - 在 .Net Core 3.1 Web API 中创建通用函数以返回响应代码
- python - 过滤没有结果的内容时如何获得零列?
- python - 如何计算 Python 的 filterwarnings 抑制的数字警告的数量?
- git - 如何使用 GitLab CI/CD 获取整个存储库?
- python-3.x - 鹡鸰模板页面不呈现图像
- c# - 尝试在 xamarin.uitests 中调用后门方法失败
- python-3.x - 我在将列表中的元素加载到 .h5 文件时遇到问题