如何通过循环将两组数组转换为指定结构的对象数组?
如何将两个数组合并为包含对象的数组
我有两个数组:
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
相关产品推荐
相关产品推荐

