gpt4 book ai didi

javascript - 使用下划线或 lodash 将一种 JSON 结构转换为另一种

转载 作者:搜寻专家 更新时间:2023-11-01 04:12:41 25 4
gpt4 key购买 nike

我在尝试将当前 JSON 结构转换为另一个时遇到问题

var data = [
{
"url": "asset/01.flv",
"pic": "asset/01.jpg"
},
{
"url": "asset/02.flv",
"pic": "asset/02.jpg"
},
{
"url": "asset/03.flv",
"pic": "asset/03.jpg"
},
{
"url": "asset/04.flv|asset/05.flv|asset/06.flv|asset/07.flv|asset/08.flv",
"pic": "asset/04.jpg|asset/05.jpg|asset/06.jpg|asset/07.jpg|asset/08.jpg"
},
{
"url": "asset/09.flv|asset/10.flv",
"pic": "asset/09.jpg|asset/10.jpg"
}
]

我想将数据转换成这样的输出结构。
这是我想要达到的结果的目标。

var data = [
{
"url": "asset/01.flv",
"pic": "asset/01.jpg"
},
{
"url": "asset/02.flv",
"pic": "asset/02.jpg"
},
{
"url": "asset/03.flv",
"pic": "asset/03.jpg"
},
{
"url": "asset/04.flv",
"pic": "asset/04.jpg"
},
{
"url": "asset/05.flv",
"pic": "asset/05.jpg"
},
{
"url": "asset/06.flv",
"pic": "asset/06.jpg"
},
{
"url": "asset/07.flv",
"pic": "asset/07.jpg"
},
{
"url": "asset/08.flv",
"pic": "asset/08.jpg"
},
{
"url": "asset/09.flv",
"pic": "asset/09.jpg"
},
{
"url": "asset/10.flv",
"pic": "asset/10.jpg"
}
]

这对我来说很困难,有人可以帮我解决这个问题吗?我已经试了几个小时了。使用 lodash 或下划线或纯 JS 都可以。提前致谢。

最佳答案

您可以使用 Array#reduce 来完成。这个想法是遍历数组并检查 urlpic 的值中是否有 |

如果是,拆分值并将所有项目推送到结果。如果没有,请按原样推送 urlpic

var data = [{"url":"asset/01.flv","pic":"asset/01.jpg"},{"url":"asset/02.flv","pic":"asset/02.jpg"},{"url":"asset/03.flv","pic":"asset/03.jpg"},{"url":"asset/04.flv|asset/05.flv|asset/06.flv|asset/07.flv|asset/08.flv","pic":"asset/04.jpg|asset/05.jpg|asset/06.jpg|asset/07.jpg|asset/08.jpg"},{"url":"asset/09.flv|asset/10.flv","pic":"asset/09.jpg|asset/10.jpg"}];

var result = data.reduce((r, {url, pic}) => {
if (url.includes('|') && pic.includes('|')) {
var urls = url.split('|');
var pics = pic.split('|');

urls.forEach((u, i) => {
r.push({url: u, pic: pics[i]});
});
} else {
r.push({url, pic})
}

return r;
}, []);

console.log(result);

关于javascript - 使用下划线或 lodash 将一种 JSON 结构转换为另一种,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51555118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com