[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(1).slice(-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(1).slice(-5)
Відповіді:
Ви можете зателефонувати:
arr.slice(Math.max(arr.length - 5, 1))
Якщо ви не хочете виключати перший елемент, використовуйте
arr.slice(Math.max(arr.length - 5, 0))
arr.slice(1).slice(-5)
>.>. також деякі з вас не змогли прочитати заголовок, оскільки ОП хотів виключити перший результат масиву: |
arr.slice(Math.max(arr.length - 5, 0))
?
1
а не 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 - це, звичайно, якщо ви не заперечуєте перед завантаженням величезного мінімізованого файлу javascript, якщо ви намагаєтеся зробити це з вашого браузера.
_.slice(_.rest(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
елементи, а потім візьму останні п’ять методу rest
з фрагментом :
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]))
);