Вы не показывали никакого кода, поэтому я собираюсь предположить, что у вас есть массив из объектов двадцати порядков, по крайней мере, с такими полями:
export interface Order {
orderId: string;
clientId: string;
// Add other stuff as needed
}
Тогда в вашем распоряжении это и вы назначаете его в вашем subscribe
обработчике.
orders: Order[];
Хорошо, хорошо.
Я бы определил уникальные значения clientId
, используя это:
const clientSet = new Set(this.orders.map(order => order.clientId));
const clientIds = [...clientSet];
Строка 1 создает новый массив, содержащий только значения clientId
(используя функцию map
), и использует его для создания нового объекта Set
.
Строка 2 превращает этот Set
в новый массив, который будет содержать только уникальные значения.
После всего этого я хочу кое-что упомянуть об этом и производительности.
Ваши двадцать заказов могли быть на восемь клиентов, но они могли быть и на двадцать, или у вас могло быть десять тысяч заказов. Поэтому, даже если вы уменьшите список клиентов, как я показал, совершать отдельные веб-звонки для всех из них по-прежнему не очень хорошо. Если у вас есть какой-либо контроль над API, просто используйте метод, который принимает массив значений clientID
, так что вы можете сделать один единственный вызов вместо (потенциально) многих. Или, что еще лучше, верните всю информацию, которая вам нужна, при первом вызове, который дает вам заказы.