3 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
當(dāng)您將行星傳播到您的第二個(gè)陣列中時(shí),您會(huì)將陣列中的所有元素planets放入第二個(gè)陣列中,因此:
["Mercury", "Earth", ...planets, "Saturn"];
...評(píng)估為:
["Mercury", "Earth", "Mercury", "Earth", "Venus", "Mars", "Pluto", "Saturn", "Saturn"];
然后你從這個(gè)數(shù)組中解構(gòu)第一個(gè)和第二個(gè)元素給你"Mercury"和"Earth"。然后使用 rest 模式...rest檢索剩余的元素(即從索引 2 開(kāi)始的元素)并將它們存儲(chǔ)在名為 的數(shù)組中rest。因此,您的rest數(shù)組包含上面數(shù)組中的所有元素,不包括第一個(gè)和第二個(gè)元素:
["Mercury", "Earth", "Venus", "Mars", "Pluto", "Saturn", "Saturn"]
要獲得預(yù)期的輸出,您可以通過(guò)忽略前兩個(gè)元素來(lái)破壞第一個(gè)數(shù)組:
const [,,...rest] = ["Mercury", "Earth", "Venus", "Mars", "Pluto", "Saturn"];
console.log(rest);

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以有選擇地傳播。當(dāng)您傳播...planets它時(shí),它將所有值從行星數(shù)組復(fù)制到您正在創(chuàng)建的數(shù)組中。
您可以在傳播之前簡(jiǎn)單地使用切片。
var planets = ["Mercury", "Earth", "Venus", "Mars", "Pluto", "Saturn"];
var [first, second, ...rest] = ["Mercury", "Earth", ...planets.slice(2, planets.length - 1), "Saturn"];
console.log(first);
console.log(second);
console.log(rest)

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以使用Set()
Set 對(duì)象允許您存儲(chǔ)唯一值
var planets = ["Mercury", "Earth", "Venus", "Mars", "Pluto", "Saturn"];
var [first, second, ...rest] = new Set(["Mercury", "Earth", ...planets, "Saturn"]);
console.log(first);
console.log(second);
console.log(rest);
添加回答
舉報(bào)