這個問題在這里已經有了答案: 解構以獲取 es6 中陣列的最后一個元素 16 個答案 獲取陣列中的第一個和最后一個元素,ES6 方式 [重復] 1 個答案 41 分鐘前關閉。
假設我有一個這樣的陣列:[2, 4, 6, 8, 10].
我想使用解構訪問這個陣列的第一個和最后一個元素,目前我正在這樣做:
const array = [2, 4, 6, 8, 10];
const [first, , , , last] = array;
console.log(first, last);
但這僅適用于長度陣列5并且不夠通用。
在 Python 中,我可以做這樣的事情:
array = [2, 4, 6, 8, 10]
first, *mid, last = array
print(first, last)
但是在 JS 中這是不可能的,因為其余元素應該是最后一個。那么,有沒有辦法在 JS 中做到這一點,或者這是不可能的?
uj5u.com熱心網友回復:
您可以使用物件解構并獲取0鍵(這是第一個元素)并將其重命名為first& 然后使用計算的屬性名稱您可以獲取array.length - 1鍵(這是最后一個元素)并將其重命名為last.
const array = [2, 4, 6, 8, 10];
const { 0: first, [array.length - 1]: last } = array;
console.log(first, last);
您還可以length通過解構獲取 via,然后使用它來獲取最后一個元素。
const array = [2, 4, 6, 8, 10];
const { length, 0: first, [length - 1]: last } = array;
console.log(first, last);
你是否應該在你的代碼庫中使用這種方法是一個需要做出的決定,但很高興知道它可以使用 JS。
訪問最后一個元素的另一種簡單方法是使用Array.prototype.at方法。
const array = [2, 4, 6, 8, 10];
console.log(array.at(-1));
uj5u.com熱心網友回復:
不一定使用解構,但我認為仍然簡潔:
const arr = [1, 2, 3, 4, 5];
const [ first, last ] = [ arr.at(0), arr.at(-1) ];
console.log(first, last);
uj5u.com熱心網友回復:
不,如果沒有復雜的解決方法,您就不能使用這樣的解構。
一個更短、更易讀的替代方法是pop:
const array = [2, 4, 6, 8, 10];
const [first, ...middle] = array;
const last = middle.pop();
console.log(first, middle, last);
或者,只需通過索引訪問它們:
const array = [2, 4, 6, 8, 10];
const first = array[0];
const last = array[array.length - 1];
console.log(first, last);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/491214.html
標籤:javascript 数组
