Javascript / Typescript - заполнить новый Arr по определенному ключу из исходного Arr - PullRequest
0 голосов
/ 25 апреля 2018

Следующий исходный массив имеет следующие значения:

Моя цель состоит в том, чтобы заполнить новый массив, который начинается с начального arr, по индексу, в котором указано его свойство name: 'Ragedварвар.У меня есть решение для этого, но я думаю, что есть семантически лучший способ приблизиться к этому.

Мой подход:

  public getNewArr(initialArr) {
    const newArr = [];
    let isRagedBarbarian: boolean = false;
    for (const troop of initialArr) {
      if (troop.name === 'Raged Barbarian') {
        isRagedBarbarian = true;
  }   if (isRagedBarbarian === true) {
        newArr.push(troop);
  }
}

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Вы можете использовать slice после получения индекса, например

public getNewArr(initialArr) {
    const index = initialArr.findIndex(troop => troop.name === 'Raged Barbarian');
    if(index > -1) {
       return initialArr.slice(index + 1);
    }
    return [];
}
0 голосов
/ 25 апреля 2018

Вы можете использовать функцию slice + функцию findIndex.

const index = initialArr.findIndex(o => o.name === 'Raged Barbarian');
const newArr = initialArr.slice(Math.max(index, 0));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...