Как получить последние 5 элементов в массиве javascript, исключая первый элемент? - PullRequest
157 голосов
/ 25 июня 2011
[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 []

Ответы [ 6 ]

278 голосов
/ 25 июня 2011

Вы можете позвонить:

arr.slice(Math.max(arr.length - 5, 1))
49 голосов
/ 19 декабря 2015

Вот тот, который я не видел, он еще короче

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)

24 голосов
/ 31 мая 2016

Если вы используете lodash, это еще проще с takeRight .

_.takeRight(arr, 5);

9 голосов
/ 25 июня 2011

Попробуйте это:

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();
}
1 голос
/ 21 мая 2017

var y = [1,2,3,4,5,6,7,8,9,10];

y.slice((y.length - 5), y.length)

Вы можете сделать это!

0 голосов
/ 10 марта 2019

Самое простое решение:

arr // input array
let numberOfLastItems = 5;

arr.slice((arr.length - numberOfLastItems), arr.length)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...