[javascript] 자바 스크립트 배열에서 첫 번째 요소를 제외하고 마지막 5 요소를 어떻게 얻습니까?

[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(Math.max(arr.length - 5, 0))


답변

여기 보지 못한 것이 더 짧습니다.

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를 사용하는 것입니다 -브라우저에서 큰 자바 스크립트 축소 파일을로드하려고하지 않아도됩니다.

_.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];

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

당신은 이것을 할 수 있습니다!


답변

ES6 방법 :

배열에 대한 소멸 할당 을 사용하여 요소 를 가져 와서 first남은 rest다음 restwith slice 메소드 중 마지막 5 개를 가져옵니다 .

const cutOffFirstAndLastFive = (array) => {
  const [first, ...rest] = array;
  return rest.slice(-5);
}

cutOffFirstAndLastFive([1, 55, 77, 88]);

console.log(
  'Tests:',
  JSON.stringify(cutOffFirstAndLastFive([1, 55, 77, 88])),
  JSON.stringify(cutOffFirstAndLastFive([1, 55, 77, 88, 99, 22, 33, 44])),
  JSON.stringify(cutOffFirstAndLastFive([1]))
);


답변