JavaScript 数组转换:将嵌套对象数据结构转换为平铺结构
JavaScript 数组转换:将嵌套对象数据结构转换为平铺结构
假设你拥有一个包含嵌套对象的数组 arr1,希望将它转换为一个包含平铺数据的数组 arr2,并且要保证key的名称一致。
示例数据:
let arr1 = [
{
'一检': {
'检验数量': 34,
'合格数量': 12,
'不良数量': 22
}
},
{
'二检': {
'检验数量': 31,
'合格数量': 10,
'不良数量': 21
}
},
{
'三检': {
'检验数量': 13,
'合格数量': 13,
'不良数量': 0
}
}
]
let arr2 = [
{
'机型': '一检',
'一检数量': 34,
'良品数': 12,
'不良数': 22
},
{
'机型': '二检',
'二检数量': 31,
'良品数': 10,
'不良数': 21
},
{
'机型': '三检',
'三检数量': 13,
'良品数': 13,
'不良数': 0
}
]
解决方案:
可以使用 map 方法来实现将 arr1 转换为 arr2,并保持 key 一致的需求。
let arr2 = arr1.map(item => {
let key = Object.keys(item)[0];
let value = item[key];
return {
'机型': key,
'一检数量': value['检验数量'],
'良品数': value['合格数量'],
'不良数': value['不良数量']
};
});
代码解释:
- 使用
map方法遍历arr1中的每一个元素。 - 使用
Object.keys(item)[0]获取每个元素的第一个 key(即 '一检'、'二检'、'三检')。 - 使用
item[key]获取对应 key 的值,即嵌套对象。 - 创建一个新的对象,包含以下 key-value 对:
- '机型': key(即获取到的 '一检'、'二检'、'三检')
- '一检数量':
value['检验数量'](从嵌套对象中获取 '检验数量' 的值) - '良品数':
value['合格数量'](从嵌套对象中获取 '合格数量' 的值) - '不良数':
value['不良数量'](从嵌套对象中获取 '不良数量' 的值)
- 将创建的新对象返回,最终得到转换后的
arr2数组。
总结:
通过使用 map 方法和简单的 key-value 操作,我们可以轻松地将包含嵌套对象的数组 arr1 转换为包含平铺数据的数组 arr2,并保证 key 的名称一致。这在处理数据结构转换和数据展示时非常有用。
原文地址: http://www.cveoy.top/t/topic/hICK 著作权归作者所有。请勿转载和采集!