Дубли в валютах (angular)
Подскажите как избавиться от дублей?

public uniqueCurrencyList(listIntRate: any[]) {
let listCurrencyObj: any[] = [];
listCurrencyObj = listIntRate.map(item => item.Currency.LetterCode);
let listUniqueCurrency: any[] = [];
for (let str of listCurrencyObj) {
var item = listUniqueCurrency.find(x => x == str);
if (item === null || item === undefined) {
let newObj = this.listItemsCurrencies.find(x => x.LetterCode == str);
listUniqueCurrency.push(newObj);
}
}
this.listItemsCurrencies = listUniqueCurrency;
}
public uniqueCurrencyList(listIntRate: any[]) {
let listCurrencyObj: any[] = listIntRate.map(item => item.Currency.LetterCode);
let listUniqueCurrency: any[] = Array.from(new Set(listCurrencyObj));
let result: CurrencyModel[] = [];
this.listItemsCurrencies.find(x => x.LetterCode == listUniqueCurrency[0]);
let listCurrency = this.listItemsCurrencies.map(x => x.LetterCode);
for (let item of listCurrency) {
if ((listUniqueCurrency.indexOf(item) !== -1)) {
let curUnique: CurrencyModel = this.listItemsCurrencies.filter(x => x.LetterCode === item)[0];
result.push(curUnique);
}
}
this.listItemsCurrencies = result;
}
начал вот так делать, но при след проходу он смотрит уже на фильтрованный массив - как его привести к начальному при инициализации?
Ответы (1 шт):
Автор решения: NocteFury
→ Ссылка
Самый простой и быстрый способ получить список уникальных элементов - это Set().
const currencies = ['BTC', 'EUR', 'EUR'];
const uniqueCurrencies = Array.from(new Set(currencies)); // ['BTC', 'EUR'];