Получение диапазона значений массива от А до Б или от Б до А | JS
Мне нужно получить из массива все значения, находящиеся между 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)));
Ответы (1 шт):
Автор решения: eccs0103
→ Ссылка
Так используйте 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));