javascript - javascript查找数组中的所有对象并将其转换为数组到数组
问题描述
我有一个包含对象的数组列表,例如地址和详细信息
输入
var arr = [
{id: 1, name: "abc", address: {street: "some text1", pin: 879888, state: "my-state1"}, details: {section: "A", roll: 12, branch:"CSE"}},
{id: 2, name: "xyz", address: {street: "some text2", pin: 879887, state: "my-state2"}, details: {section: "B", roll: 13, branch:"IT"}}
]
我想迭代这个数组并转换所有内部对象,使它看起来像下面
预期结果
var arr = [
{id: 1, name: "abc", street: "some text1", pin: 879888, state: "my-state1", section: "A", roll: 12, branch: "CSE"},
{id: 2, name: "xyz", street: "some text2", pin: 879887, state: "my-state2", section: "B", roll: 13, branch: "IT"}
]
解决方案
使用map
和传播运算符将简化。
或者,您可以使用没有硬编码键的通用方式。
var arr = [
{
id: 1,
name: "abc",
address: { street: "some text1", pin: 879888, state: "my-state1" },
details: { section: "A", roll: 12, branch: "CSE" }
},
{
id: 2,
name: "xyz",
address: { street: "some text2", pin: 879887, state: "my-state2" },
details: { section: "B", roll: 13, branch: "IT" }
}
];
const updated = arr.map(item => ({
id: item.id,
name: item.name,
...item.address,
...item.details
}));
const updatedGeneric = arr.map(item => {
let res = {};
Object.entries(item).forEach(([key, value]) => Object.assign(res, typeof value === "object" ? value : { [key]: value }));
return res;
});
console.log(updated);
console.log(updatedGeneric);
推荐阅读
- sql - 如何使用 PowerShell 从 SQL Server 中的 .csv 导入数据?- 问题
- python - 如何将嵌套的 JSON 数据从 URL 转换为 Pandas 数据框
- ruby-on-rails - 如果允许有效重叠,如何计算预订
- regex - 从 RDBMS 表的列中的客户端标识符中排除日期列的模式
- r - 从源代码编译 R:如果直接启动,RStudio 找不到库
- c - 关于我在 Tideman 中实现 lock_pairs 函数的问题
- python - 检测来自麦克风的音频
- reactjs - 将 react-charts 函数组件示例转换为类组件
- mysql - 如何根据同一列中的两个条件进行过滤
- python - Python:在函数中存储变量并根据条件重新启动时间