[英]Create array of objects from another array of objects
(Sorry for the title) (对不起标题)
What is the best way to turn this:最好的方法是什么:
[
{
directory: 'video_0',
files: [ 'comp_0.mp4', 'comp_1.mp4' ],
uploadedFiles: ['video_0/comp_0.mp4','video_0/comp_1.mp4']
},
{
directory: 'video_1',
files: [ 'comp_0.mp4', 'comp_1.mp4' ],
uploadedFiles: ['video_1/comp_0.mp4','video_1/comp_1.mp4']
},
{
directory: 'video_2',
files: [ 'comp_0.mp4', 'comp_1.mp4' ],
uploadedFiles: ['video_2/comp_0.mp4','video_2/comp_1.mp4']
}
]
Into this:进入这个:
[
{
file: 'comp_0.mp4',
directory: 'video_0',
uploadedFile: 'video_0/comp_0.mp4',
},
{
file: 'comp_1.mp4',
directory: 'video_0',
uploadedFile: 'video_0/comp_1.mp4',
},
{
file: 'comp_0.mp4',
directory: 'video_1',
uploadedFile: 'video_1/comp_0.mp4',
},
{
file: 'comp_1.mp4',
directory: 'video_1',
uploadedFile: 'video_1/comp_1.mp4',
},
{
file: 'comp_0.mp4',
directory: 'video_2',
uploadedFile: 'video_2/comp_0.mp4',
},
{
file: 'comp_1.mp4',
directory: 'video_2',
uploadedFile: 'video_2/comp_1.mp4',
}]
And then back again...然后又回来了……
I receive data in a certain structure, then I need to create a task list for each file.我以某种结构接收数据,然后我需要为每个文件创建一个任务列表。 Then convert it back to it's original structure.
然后将其转换回其原始结构。 I'm sure there will be some clever ES6 way of doing this but I can't figure it out.
我敢肯定会有一些聪明的 ES6 方法来做到这一点,但我想不通。
a very crude implementation would be:一个非常粗略的实现是:
const data = [
{
directory: 'video_0',
files: ['comp_0.mp4', 'comp_1.mp4'],
uploadedFiles: ['video_0/comp_0.mp4', 'video_0/comp_1.mp4']
},
{
directory: 'video_1',
files: ['comp_0.mp4', 'comp_1.mp4'],
uploadedFiles: ['video_1/comp_0.mp4', 'video_1/comp_1.mp4']
},
{
directory: 'video_2',
files: ['comp_0.mp4', 'comp_1.mp4'],
uploadedFiles: ['video_2/comp_0.mp4', 'video_2/comp_1.mp4']
}
];
const newArr = data.reduce((p, c) => {
return p.concat(c.files.map((file, i) => {
return {
directory: c.directory,
file,
uploadedFile: c.uploadedFiles[i]
};
}));
}, []);
There are probably much cleaner solutions out there.那里可能有更清洁的解决方案。 what I did was a simple array Zip implementation.
我所做的是一个简单的数组 Zip 实现。
you can check more about zipping here: How do I zip two arrays in JavaScript?您可以在此处查看有关压缩的更多信息: 我如何在 JavaScript 中使用 zip 两个 arrays?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.