提问者:小点点

根据图像的类型对其进行排序,并将其放入具有typescript的相应文件夹中


我想按照图像的类型(好,中,差)排序,并把它们放在相应的文件夹中。

我的数据是一个具有图像名称+标签的对象

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”的图像放入文件夹。/bad。

您有没有用javascript(节点)实现这一点的想法?


共1个答案

匿名用户

您提供的代码示例中有一些问题可以在此处解决:

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' }
];

要解决您的问题,您可以使用。reduce将图像标签相应地分组:

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"
    ]
}