JavaScript新手求助:按userId分组专辑及合并JSON数据问题
问题解决方案
1. 按userId分组专辑
如果用原生JavaScript,无需依赖第三方库,用Array.prototype.reduce()就能实现分组:
// 假设你的专辑数据是albums数组,结构示例:{ userId: 1, id: 1, title: "示例专辑" } const groupedByUserId = albums.reduce((acc, album) => { if (!acc[album.userId]) { acc[album.userId] = []; } acc[album.userId].push(album); return acc; }, {});
要是之前尝试的是lodash的_.groupBy(),先确认lodash已正确安装导入,正确用法是:
const groupedByUserId = _.groupBy(albums, 'userId');
2. 合并photos JSON文件
场景1:将photos关联到对应专辑
假设photos数组结构为{ albumId: 1, id: 1, title: "示例图片", url: "xxx" },要把图片合并到所属专辑中:
// 先按albumId分组photos const photosByAlbumId = photos.reduce((acc, photo) => { if (!acc[photo.albumId]) { acc[photo.albumId] = []; } acc[photo.albumId].push(photo); return acc; }, {}); // 把photos合并到对应专辑 const albumsWithPhotos = albums.map(album => ({ ...album, photos: photosByAlbumId[album.id] || [] // 无对应图片时返回空数组 }));
场景2:直接合并两个数组
如果只是要把两个JSON的数组内容合并成一个:
const combinedData = [...albums, ...photos];
内容的提问来源于stack exchange,提问作者Sasha 1981
相关产品推荐
相关产品推荐

