[1, 55, 77, 88] // ...would return [55, 77, 88]
добавление дополнительных примеров:
[1, 55, 77, 88, 99, 22, 33, 44] // ...would return [88, 99, 22, 33, 44] [1] // ...would return []
Вы можете позвонить:
arr.slice(Math.max(arr.length - 5, 1))
Вот тот, который я не видел, он еще короче
arr.slice(1).slice(-5)
Запустите приведенный ниже фрагмент кода, чтобы убедиться, что он делает то, что вам нужно
var arr1 = [0, 1, 2, 3, 4, 5, 6, 7], arr2 = [0, 1, 2, 3]; document.body.innerHTML = 'ARRAY 1: ' + arr1.slice(1).slice(-5) + '<br/>ARRAY 2: ' + arr2.slice(1).slice(-5);
Еще один способ сделать это - использовать lodash https://lodash.com/docs#rest - это, конечно, если вы не возражаете против необходимости загрузки огромного уменьшенного файла javascript, если вы пытаетесь это сделать из браузера.
_.slice(_.rest(arr), -5)
Если вы используете lodash, это еще проще с takeRight .
_.takeRight(arr, 5);
Попробуйте это:
var array = [1, 55, 77, 88, 76, 59]; var array_last_five; array_last_five = array.slice(-5); if (array.length < 6) { array_last_five.shift(); }
var y = [1,2,3,4,5,6,7,8,9,10]; y.slice((y.length - 5), y.length)
Вы можете сделать это!
Самое простое решение:
arr // input array let numberOfLastItems = 5; arr.slice((arr.length - numberOfLastItems), arr.length)