1 回答

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
這可以通過(guò)一個(gè)簡(jiǎn)單的while循環(huán)來(lái)實(shí)現(xiàn)。這里的關(guān)鍵是找到中間索引。在一個(gè)奇數(shù)長(zhǎng)度的數(shù)組中,只有一個(gè)中心,我們可以認(rèn)為是左右中心在同一個(gè)點(diǎn)上,以推廣解決方案。該指數(shù)將地板長(zhǎng)度除以二的結(jié)果。正確的索引也將始終是這個(gè)值。但是,對(duì)于偶數(shù)長(zhǎng)度的數(shù)組,我們需要將左側(cè)索引減一。計(jì)算完這些索引后,我們循環(huán)遞減左索引并遞增右索引以將值添加到我們的結(jié)果數(shù)組。
function order(arr){
let right = Math.floor(arr.length / 2);
let left = right - (arr.length % 2 == 1 ? 0: 1);
let res = left === right ? [arr[left]] : arr.slice(left, right + 1);
while(left > 0){
res.push(arr[--left]);
res.push(arr[++right]);
}
return res;
}
console.log(...order([1,2,3,5,8,13,20]));
console.log(...order([1,2,3,4]));
添加回答
舉報(bào)