js 如何将时间相同的元素放在同一个数组?求大佬们指教?
后台接口返回的数据结构
res = [ {
create_time: '2023-04-23 09:00:00',
img_id: [1,2,3] // 需要遍历拿到图片ID去下载图片URL
},
{
create_time: '2023-04-23 10:00:00',
img_id: [4,5,6]
}
]
我想要的结果
newArr = [ {
create_time: '2023-04-23 09:00:00',
imgList: [
'https://1.jpg',
'https://2.jpg',
'https://3.jpg'
]
},
{
create_time: '2023-04-23 10:00:00',
imgList: [
'https://4.jpg',
'https://5.jpg',
'https://6.jpg'
]
},
]
回答:
const res = [ {
create_time: '2023-04-23 09:00:00',
img_id: [1,2,3] // 需要遍历拿到图片ID去下载图片URL
},
{
create_time: '2023-04-23 10:00:00',
img_id: [4,5,6]
},
{
create_time: '2023-04-23 09:00:00',
img_id: [7,8,9] // 需要遍历拿到图片ID去下载图片URL
},
]
const map = new Map();
res.forEach(item => {
if (map.has(item.create_time)) {
map.set(item.create_time, [...map.get(item.create_time), ...item.img_id]);
} else {
map.set(item.create_time, item.img_id);
}
});
console.log(map, "map");
// 遍历map
for (const [key, value] of map) {
console.log(key, "key");
console.log(value, "value");
}
拼接的自行处理一下就好
回答:
const res = [{ create_time: '2023-04-23 09:00:00',
img_id: [1, 2, 3],
}, {
create_time: '2023-04-23 10:00:00',
img_id: [4, 5, 6],
}];
const newArr = res.map(item => {
const imgList = item.img_id.map(id => `https://${id}.jpg`);
return {
create_time: item.create_time,
imgList: imgList,
};
});
console.log(newArr);
以上是 js 如何将时间相同的元素放在同一个数组?求大佬们指教? 的全部内容, 来源链接: utcz.com/p/934114.html