问题描述
我想根据图像的类型(好,中,坏)对图像进行排序,然后将其放入相应的文件夹中。
export interface data = { image: string,label: 'good' | 'medium' | 'bad' }
export const DATA: data = {
{ image: 'name-of-image-1,label: 'good' }
{ image: 'name-of-image-2,label: 'bad' },{ image: 'name-of-image-3,label: 'good' },...,{ image: 'name-of-image-n,label: 'medium' }
}
图像位于服务器上,路径例如:smb:// test / images /
所以我在smb:// test / images / name-of-image-1
找到了我的第一张图像。我想映射我的数据并根据标签将图像复制到相应的文件夹中。 (将带有标签“坏”的图片放入./bad文件夹中。
您有使用javascript(节点)做到这一点的想法吗?
解决方法
您提供的代码示例有一些问题可以在此处解决:
export interface Data {
image: string,label: 'good' | 'medium' | 'bad'
}
export const data: Data[] = [
{ image: 'name-of-image-1',label: 'good' },{ image: 'name-of-image-2',label: 'bad' },{ image: 'name-of-image-3',{ image: 'name-of-image-n',label: 'medium' }
];
要解决您的问题,您可以使用.reduce
相应地对图像label
进行分组:
const sorted = data.reduce((prev,current) => ({
...prev,[current.label]: [
...prev[current.label],current.image
]
}),{ good: [],medium: [],bad: [] });
然后sorted
的响应如下
{
"good": [
"name-of-image-1","name-of-image-3"
],"medium": [
"name-of-image-n"
],"bad": [
"name-of-image-2"
]
}