Задать вопрос
@Alex10214

Как выбрать объекты в массиве по индексу другого массива?

Приветствую, у меня есть условные массив объектов:
const arr = [
  {
    ticker: 'SPY',
    strategy: 'OLD',
    broker: 'OOH'
  },
  {
    ticker: 'SPY',
    strategy: 'LOG',
    broker: 'FOR'
  },
  {
    ticker: 'HG',
    strategy: 'KIP',
    broker: 'LOOP'
  }
]

и есть массив:
const arr2 = ['OLD', 'LOG']
подскажите как мне перебрать arr (по strategy) на основе данных arr2
  • Вопрос задан
  • 96 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
arr.filter((item) => arr2.includes(item.strategy))

/*
[
  {
    "ticker": "SPY",
    "strategy": "OLD",
    "broker": "OOH"
  },
  {
    "ticker": "SPY",
    "strategy": "LOG",
    "broker": "FOR"
  }
]
*/
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
const result = arr.filter(n => arr2.includes(n.strategy));

или

const result = arr2.flatMap(function(n) {
  return this[n] ?? [];
}, arr.reduce((acc, n) => ((acc[n.strategy] ??= []).push(n), acc), {}));

или

const result = arr.filter(((values, n) => values.has(n.strategy)).bind(null, new Set(arr2)));

или

const result = [];

for (const n of arr) {
  for (const m of arr2) {
    if (m === n.strategy) {
      result.push(n);
      break;
    }
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы