You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过循环将两组数组转换为指定结构的对象数组?

如何将两个数组合并为包含对象的数组

我有两个数组:

const name = ["Amy", "Robert", "Sofie"];
const age = ["21", "28", "25"];

希望把它们整合为一个包含对象的数组,预期输出如下:

const person = [{name: 'Amy', age: '21'}, {name: 'Robert', age: '28'}, {name: 'Sofie', age: '25'}];

因为实际使用的数组长度很长,手动编写太麻烦,能不能用循环实现这个需求?


完全可以,这里提供几种实用的实现方式:

1. 普通for循环实现

这是最基础的写法,适合理解底层逻辑:

const name = ["Amy", "Robert", "Sofie"];
const age = ["21", "28", "25"];
const person = [];

// 遍历数组,默认两个数组长度一致
for (let i = 0; i < name.length; i++) {
  person.push({
    name: name[i],
    age: age[i]
  });
}

console.log(person); // 输出预期结果

2. Array.map()简洁写法

ES6的map方法能让代码更简洁,可读性更强:

const name = ["Amy", "Robert", "Sofie"];
const age = ["21", "28", "25"];

const person = name.map((item, index) => ({
  name: item,
  age: age[index]
}));

console.log(person); // 输出预期结果

额外提醒:处理数组长度不一致的情况

如果两个数组长度不一样,建议先取较短的长度来遍历,避免出现undefined的问题:

const name = ["Amy", "Robert", "Sofie", "Tom"];
const age = ["21", "28", "25"];
const person = [];

const validLength = Math.min(name.length, age.length);
for (let i = 0; i < validLength; i++) {
  person.push({
    name: name[i],
    age: age[i]
  });
}

console.log(person); // 只处理到两个数组都有值的部分

内容的提问来源于stack exchange,提问作者Dhenhice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 09:57:23