DEV Community

Cover image for TS - Array 元素上下移動、置頂置底和元素交換,你會嗎?
FakeStandard
FakeStandard

Posted on

TS - Array 元素上下移動、置頂置底和元素交換,你會嗎?

在操作 TypeScript 的 Array 時,總會遇到元素需移動位置或交換等等之情況,在寫這篇之前,我是不會的,希望寫完這篇之後,以後能記得怎麼使用,就算不記得再回來看文章偷吃步一下(笑

置頂和置底

// index 是要移動的元素位置

// 置頂
array.unshift(array.splice(index, 1)[0])

// 置底
array.push(array.splice(index, 1)[0])
Enter fullscreen mode Exit fullscreen mode

上移與下移

// 上移
arr[idx] = arr.splice(idx - 1, 1, arr[idx])[0]

// 下移
arr[idx] = arr.splice(idx + 1, 1, arr[idx])[0]
Enter fullscreen mode Exit fullscreen mode

上移與下移的差異不大,將要替換的 index 加減一即可,從這兩者之間可衍伸出交換的方法,也能適用於上移和下移的狀況

let arr = [1, 2, 3, 4, 5];
console.log(arr) // 印出原陣列

Swap(1, 2)
console.log(arr) // 印出交換過後的陣列

function Swap(i: number, j: number) {
    arr[i] = arr.splice(j, i, arr[i])[0]

    return arr
}
Enter fullscreen mode Exit fullscreen mode

打完,收工!


Thanks for reading the article 🌷 🌻 🌼

If you like it, please don't hesitate to click heart button ❤️
or follow my GitHub ⭐ I'd appreciate it.


Top comments (0)