Проверьте, существует ли тип объекта в массиве - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть абстрактный класс, который вызывает Car.

    abstract class Vehicles {
}

У меня есть еще 3 класса, которые наследуют Car:

class Car extends Vehicles {
}

class Motorcycle extends Vehicles {
}

class Truck extends Vehicles {
}

Я хочу создать случайный массив этого типа is Транспортные средства:

let vehicles1: Vehicles [] = new Array(2);

Но я не хочу повторять один и тот же тип транспортных средств дважды (например, не будет двух автомобилей). Я могу проверить каждый тип объекта, который был создан, но если у меня есть 20 классов, которые расширяют Транспорт?

Как я могу проверить, был ли объект уже создан в массиве или нет? но без проверки? (typeof)

спасибо.

1 Ответ

0 голосов
/ 23 апреля 2020

Вы можете использовать findIndex, чтобы убедиться, что нет других элементов того же типа, вот пример функции, которая добавляет новый элемент в массив Vehicles1, но перед этим он проверяет любые существующие элементы того же типа:

function addVehicle(vehicle) {
        const thisType = typeof vehicle;

        const index = vehicles1.findIndex(el => typeof el === thisType);
        if(index !== -1) {
            // that means there is no item of the same type, So you can add this one
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...