альтернативы для каждого - PullRequest
2 голосов
/ 28 мая 2020

У меня есть код, который просматривает массив пользователей с помощью forEach. И внутри этого l oop я снова использую forEach до l oop в своих ценовых предупреждениях. Это выглядит так

  user_data.users.forEach((user, index) => {
    if (user.id == id) {
      user.price_alerts.forEach((alert, alert_index) => {
        if (alert.symbol == symbol) {
          //remove alert
          user.price_alerts.splice(alert_index, 1);
        }
      });
    }
  });

Но проблема в том, что вместо удаления ВСЕХ совпадений с 'SYMBOL' он просто удаляет одно. Как это исправить ? Заранее спасибо <3 </p>

1 Ответ

2 голосов
/ 28 мая 2020

Если вам нужно удалить все элементы, которые не удовлетворяют какому-либо условию, попробуйте использовать метод filter:

let result = user.price_alerts.filter(alert => alert.symbol !== symbol);

UPDATE:

user.price_alerts = user.price_alerts.filter(alert => alert.symbol !== symbol);
...