TIM*_*MEX 167 javascript arrays
[1, 55, 77, 88] // ...would return [55, 77, 88]
Run Code Online (Sandbox Code Playgroud)
添加其他示例:
[1, 55, 77, 88, 99, 22, 33, 44] // ...would return [88, 99, 22, 33, 44]
[1] // ...would return []
Run Code Online (Sandbox Code Playgroud)
SLa*_*aks 289
你可以打电话:
arr.slice(Math.max(arr.length - 5, 1))
Run Code Online (Sandbox Code Playgroud)
Bel*_*ndu 54
这是我没见过的更短的一个
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);Run Code Online (Sandbox Code Playgroud)
另一种方法是使用lodash https://lodash.com/docs#rest - 当然如果你不介意加载一个巨大的javascript缩小文件,如果你试图从你的浏览器这样做.
_.slice(_.rest(arr), -5)
小智 14
var y = [1,2,3,4,5,6,7,8,9,10];
console.log(y.slice((y.length - 5), y.length))Run Code Online (Sandbox Code Playgroud)
你可以这样做!
试试这个:
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();
}
Run Code Online (Sandbox Code Playgroud)
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]))
);Run Code Online (Sandbox Code Playgroud)
您可以像这样一行完成:
const y = [1,2,3,4,5,6,7,8,9,10];
const lastX = 5;
const res = y.filter((val, index, arr) => index > arr.length - lastX - 1);
console.log(res);Run Code Online (Sandbox Code Playgroud)
.filter((val, index, arr) => index > arr.length - 6)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125776 次 |
| 最近记录: |