Назад к задачам
Junior — Senior
13

Получить список названий объектов по типу "Устройства"

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Задача состоит из двух частей:

  1. Вывести строку, содержащую названия объектов.
  2. Реализовать функцию, которая формирует строку с именами объектов (через запятую), если их object_type относится к типам, у которых поле class равно строке "Устройства".
interface IObjectItem {
    id: number;
    name: string;
    object_type: number;
}

interface IObjectType {
    id: number;
    class: string;
}

const objects: IObjectItem[] = [
    { id: 1, name: "Test 1", object_type: 1 },
    { id: 2, name: "Test 2", object_type: 1 },
    { id: 3, name: "Test 3", object_type: 2 },
    { id: 4, name: "Test 4", object_type: 3 },
    { id: 5, name: "Test 5", object_type: 4 },
];

const object_types: IObjectType[] = [
    { id: 1, class: "Устройства" },
    { id: 2, class: "Устройства" },
    { id: 3, class: "Порты" },
    { id: 4, class: "Кабели" },
];

function getNames(objects: IObjectItem[], object_types: IObjectType[]): string {
    const mapIds: number[] = [];

    object_types.forEach((type) => {
        if (type.class === "Устройства") mapIds.push(type.id);
    });

    const result: string[] = [];

    objects.forEach((obj) => {
        if (mapIds.includes(obj.object_type)) result.push(obj.name);
    });

    return result.join(", ");
}

console.log(getNames(objects, object_types));