1. ホーム
  2. arrays

[解決済み] Swiftで配列の項目を新しい位置に並べ替えるには?

2023-06-02 19:03:25

質問

配列 [1,2,3,4] . 配列の項目を新しい位置に並べ替えるにはどうしたらよいでしょうか。

例えば

put 3 into position 4 [1,2,4,3]

put 4 in to position 1 [4,1,2,3]

put 2 into position 3 [1,3,2,4] .

どのように解決するのですか?

Swift 3.0以上です。

let element = arr.remove(at: 3)
arr.insert(element, at: 2)

と関数形式で

func rearrange<T>(array: Array<T>, fromIndex: Int, toIndex: Int) -> Array<T>{
    var arr = array
    let element = arr.remove(at: fromIndex)
    arr.insert(element, at: toIndex)

    return arr
}

Swift 2.0です。

これで3の位置が4になりました。

let element = arr.removeAtIndex(3)
arr.insert(element, atIndex: 2)

一般的な関数を作ることもできます。

func rearrange<T>(array: Array<T>, fromIndex: Int, toIndex: Int) -> Array<T>{
    var arr = array
    let element = arr.removeAtIndex(fromIndex)
    arr.insert(element, atIndex: toIndex)

    return arr
}

var arr を指定しないと入力パラメータを変更できないため、ここでは in-out . しかし、この場合、副作用のない純粋な関数が得られるので、私の意見では、より簡単に推論することができます。 そして、このように呼び出すことができます。

let arr = [1,2,3,4]
rearrange(arr, fromIndex: 2, toIndex: 0) //[3,1,2,4]