Страницы

Поиск по вопросам

среда, 5 февраля 2020 г.

возвращать два последующих элемента массива. Если нет, начинать заново

#javascript


Есть массив элементов 

const arrsy =   [
  {
    background: 'blue'
  },
  {
    background: 'lightblue'
  },
  {
     background: 'red'
  },
  {
    background: 'lightpink'
  },
]


нужно написать функцию, которая возвращает два последующих элемента. Если их нет,
то начинаем сначала.

Например:

Выбираем нулевой элемент - возвращается первый и второй. Выбираем второй - возвращается
третий и нулевой (так как четвертого уже нет).
    


Ответы

Ответ 1



const arrsy = [ { background: 'blue' }, { background: 'lightblue' }, { background: 'red' }, { background: 'lightpink' }, ]; function nextTwo(i) { return [ arrsy[i = (i + 1) % arrsy.length], arrsy[i = (i + 1) % arrsy.length] ]; } console.log(nextTwo(2));

Ответ 2



Думаю один из вариантов, как-то так: const arr = [ { background: "blue" }, { background: "lightblue" }, { background: "red" }, { background: "lightpink" } ]; function getNext(elem, arr) { const result = []; const findedIndex = arr.findIndex( item => item.background === elem.background ); let nextIndex = findedIndex; for (let counter = 1; counter <= 2; counter++) { nextIndex += 1; if (nextIndex === arr.length) { nextIndex = 0; } result.push(arr[nextIndex]); } return result; } console.log( getNext({ background: "red" }, arr) );

Комментариев нет:

Отправить комментарий