javascript - 将项目从另一个数组添加到对象数组
问题描述
我有一个这样的数组:
data = [1, 2, 3, 4, 5]
我有一个这样的对象数组:
obj = [{"Name":"ABC","Age":25,"Gender":"M"},
{"Name":"DEF","Age":32,"Gender":"F"},
{"Name":"PQR","Age":30,"Gender":"F"},
{"Name":"XYZ","Age":30,"Gender":"F"}]
我需要将数据数组的每个元素推入数组的每个对象中。我的预期输出是这样的:
obj = [{"Name":"ABC","Age":25,"Gender":"M", "Data":1},
{"Name":"DEF","Age":32,"Gender":"F", "Data":2},
{"Name":"PQR","Age":30,"Gender":"F", "Data":3},
{"Name":"XYZ","Age":30,"Gender":"F", "Data":4}]
我试过这样:
for(let i = 0; i<data.length; i++){
obj.push({data:data[i])
}
但这给出了这样的错误结果:
obj = [{"Name":"ABC","Age":25,"Gender":"M"},
{"Name":"DEF","Age":32,"Gender":"F"},
{"Name":"PQR","Age":30,"Gender":"F"},
{"Name":"XYZ","Age":30,"Gender":"F"},
{"Data":1},{"Data":2},{"Data":3},{"Data":4}]
我知道这是因为在将项目推入对象数组之前,我没有遍历对象数组。但是我无法同时遍历数据和 obj。请帮我解决问题。提前致谢。
解决方案
有多种方法可以实现预期的输出。这是其中一种方法,循环使用数组Array.map
和解构
const data = [{"Name":"ABC","Age":25,"Gender":"M"}, {"Name":"DEF","Age":32,"Gender":"F"},{"Name":"PQR","Age":30,"Gender":"F"},{"Name":"XYZ","Age":30,"Gender":"F"}];
const array = [1, 2, 3, 4, 5];
const formattedData = (data, array) => data.map((obj, i) => (
{
...obj,
Data: array[i]
}
));
console.log(formattedData(data, array));
.as-console-wrapper {
max-height: 100% !important;
}
推荐阅读
- python - 在 Python 中添加到 WAV 文件
- python - 如何从 Pandas DataFrame 中提取 URL?
- python - pandas DataFrame:按间隔匹配数据框和字典
- java - Java getter方法不显示更改的值
- android - 有没有办法通过适配器的意图?
- scala - scala在正文中使用模式匹配的后卫(如果)的计算
- python - 具有多个模式的 Alembic 操作
- c++ - 如何在OpenGL中设置背景颜色
- elixir - 如何使用片段作为更新变更集属性的一部分?
- r - ggplot:如何在三个不同的 geom_line() 下应用 geom_area() 或类似的填充区域而不重叠每个独立填充?