Получение диапазона значений массива от А до Б или от Б до А | JS

Рейтинг: 0Ответов: 1Опубликовано: 01.02.2023

Мне нужно получить из массива все значения, находящиеся между A и Б. Проблема в том, что и А, и Б могут меняться местами (что-где я не могу узнать). Я пытался сделать через slice, но один вариант работает, а другой выдает пустой массив.

const originArray = new Array(100).fill(0).map((v, i) => i);
const A = 14;
const B = 43;

const sliceMessage = (array, start, end) => {
  return array.slice(start, end);
}

console.log("originArray от А до Б", sliceMessage(originArray, originArray.indexOf(A), originArray.indexOf(B)));

console.log("originArray от Б до А", sliceMessage(originArray, originArray.indexOf(B), originArray.indexOf(A)));

Ответы

▲ 0Принят

Так используйте Math.min(), Math.max();

const array = new Array(100).fill(0).map((item, index) => index);

function subarray(a, b) {
  return array.slice(Math.min(a, b), Math.max(a, b));
}

console.log(subarray(14, 43));
console.log(subarray(43, 14));