如何将多个单属性数组对象合并为目标结构的对象数组
解决方案
你可以利用数组的map方法结合对象展开语法实现需求,三个数组的元素位置一一对应,代码如下:
const dates = [{date: '12/04/2023'}, {date: '13/04/2023'}]; const days = [{day: 'Monday'}, {day: 'Tuesday'}]; const time = [{time: '09-10'}, {time: '10-11'}]; const final = dates.map((item, index) => { return { ...item, ...days[index], ...time[index] }; }); console.log(final);
代码说明
map方法遍历dates数组,同时获取每个元素的索引index- 通过对象展开语法
{...obj1, ...obj2, ...obj3},将对应索引位置的dates、days、time中的对象属性合并到一个新对象中 map返回的数组即为目标结果
如果三个数组长度不一致,可基于最短数组长度处理,避免索引越界:
const minLength = Math.min(dates.length, days.length, time.length); const final = []; for (let i = 0; i < minLength; i++) { final.push({ ...dates[i], ...days[i], ...time[i] }); }
内容的提问来源于stack exchange,提问作者alittlecurryhot
相关产品推荐
相关产品推荐

