javascript - 如何将两个数组与每个数组中的数据组合成多个对象?
问题描述
我正在尝试将两个长度数组解析n
为n
具有与数组相同数量的键值对的对象。每个对象都应该有一个与对象位置相关的动态名称键。
例如,如果每个数组中有 10 个项目,则应该有 10 个对象,并且每个对象应该有一个 name 键,它是顺序的 -->Day[n]
输入将如下所示:
// input
const temperatures: [65, 33]
const rain: [3, 8]
输出形状应如下所示:
// output
[
{
name: 'Day1',
temperature: 65,
rain: 3
},
{
name: 'Day2',
temperature: 33,
rain: 8
},
]
我尝试通过每个数组进行映射并为每个数组项创建一个对象,然后将它们组合成一个对象数组,但出于某种原因,结果数组仅包含一组数组名称。
到目前为止,这是我的代码:
const temperature = [65, 33];
const rain = [3, 8];
const days = { name: 'Day1' };
const data1 = temperature.map((val) => {
return { temperature: val };
});
const data2 = rain.map((val) => {
return { rain: val };
});
const total = { ...days, ...data1, ...data2 };
console.log(total);
// output: { '0': { temperature: 65 }, '1': { temperature: 33 }, name: 'Day1' }
注意:我正在创建输入数组,所以如果我需要添加或更改任何数据,这是可能的。
解决方案
const temperature = [65, 33];
const rain = [3, 8];
const length = Math.max(temperature.length, rain.length);
const output = [];
for(let i = 0; i < length; i++) {
output.push({rain:rain[i], temperature:temperature[i], name:`Day${i+1}`});
}
推荐阅读
- python - TensorFlow 优化器中的 _get_hyper 和 _set_hyper 是什么?
- sql-server - 如何在 MS Access 中存储 ftp 用户的密码?
- html - 强制带有标签的文本在表格中与另一个没有标签的单元格高度相同
- java - 从长度为 n 的字符数组生成长度为 m 的所有子序列,其中 n >= m 在 Java 语言中
- python-3.x - 使用发布请求 [python] 将压缩的 numpy 数组(zlib)发送到烧瓶服务器
- c# - 使用 OpenId、OAuth2、Cognito、.NET Core 3.1 和 Swagger 的 Invalid_request、未授权客户端
- c - CS50 CREDIT 分配代码中的问题
- javascript - 在 React 中使用 useState 挂钩后浏览器选项卡冻结
- git - git 报告子模块有变化,即使它没有
- javascript - 如何从云 Firestore 数据库中检索 imageUrl 和 Text 数据?