@1233211

Как взять из массива предыдущее или следующее значение?

Допустим есть массив
['test',test1''test2,'test3','test4']

1. Как взять значение из массива, которые идёт до 'test2'?
1. Как взять значение из массива, которые идёт после 'test2'?
  • Вопрос задан
  • 743 просмотра
Решения вопроса 2
might
@might
javascript developer
const arr = ['test','test1','test2','test3','test4'];
const index = arr.indexOf('test2');
const next = arr[index + 1];
const prev = arr[index - 1];

console.log('next', next);
console.log('prev', prev);
Ответ написан
@dimoff66
Кратко о себе: Я есть
Несколько вариантов

1) Находим индекс через метод indexOf и получаем значение по индекс + 1 или индекс - 1
const nextAfter = (arr, value) => {
  const ind = arr.indexOf(value) 
  if (ind < 0) return 
  return arr[ind + 1] // для предыдущего -1
}


2) Через функцию find

arr.find((v, ind, arr) => arr[ind - 1] === value) 
// для предыдущего +1, не путать с первым примером
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Karpion
А кто гарантирует, что значение 'test2' встречается только один раз?

Так-то - найти номер элемента, который равен 'test2' (перебором; половинным делением, если массив отсортирован; встроенной в язык функцией); и затем отнять/прибавить к этому номеру единицу (при необходимости - извлечь элемент массива).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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