Если «приходит как объект из API» означает, что вы на самом деле получаете
{'BTC/USDT': …, 'ETH/BTC': …, 'CELR/BTC': …, …}
а не то, что вы показали в вопросе
['BTC/USDT', 'ETH/BTC', 'CELR/BTC', …]
тогда delete
и Object.keys
в порядке, хотя вы:
не следует использовать map
для побочных эффектов (и особенно не только для побочных эффектов) - forEach
также совместим
не следует использовать циклы for…in
для перебора массивов, таких как exclude
Поскольку вы используете let
/ const
, есть большая вероятность, что доступны for…of
и Object.entries
:
for (const [key, value] of Object.entries(tickers)) {
for (const base of exclude) {
if (key.includes(base)) {
delete tickers[key]
break
}
}
}
Тогда, если вы хотите заменить внутренний цикл чем-то, что не требует времени, пропорционального размеру списка исключений, и, учитывая, что вы, кажется, сможете извлечь список кандидатов для проверки из ключа, разделив на /
, вы можете использовать набор, как описано в других ответах.