0

我想根据图像的类型(好、中、坏)对图像进行排序,并将它们放在相应的文件夹中。

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

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 (node) 做到这一点吗?

4

1 回答 1

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地对图像进行分组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"
    ]
}
于 2020-08-14T14:11:13.993 回答