2011-06-24 69 views

回答

183

您可以撥打:

arr.slice(Math.max(arr.length - 5, 1)) 
+20

+1思維朗誦和快速。 –

+5

+1簡單而有用。此外,我認爲最後的值(1)必須爲0才能工作,這arr.slice(Math.max(arr.length - 5,0))爲我工作。 – QMaster

+38

'$('img')。slice(-5)'也可以。 – TuteC

2

試試這個:

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(); 
} 
+2

這隻適用於用戶的特定示例。那是長度爲4的數組。 –

+0

不,不是。適用於任何長度的數組。 -3表示應該返回最後3個元素。 – Arka

+1

讓我改說一下。從評論,*最後五個元素*,你只返回最後3.這是例子。不是規格。 –

24

這裏是一個我沒有可見,甚至更短的

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)

11

如果使用lodash,它甚至takeRight簡單。

_.takeRight(arr, 5);

+0

它還處理數組是否少於5個元素 – Devank

2

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

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

你可以做到這一點!

相關問題