subarray()

配列から開始インデックスと終了インデックスで指定した範囲の部分配列を返します。

構文

subarray(ARRAY, START[, END])

パラメーター

ARRAY
部分配列を抽出する配列。
START
抽出を開始するインデックス。0 から始まり、負の値を指定すると配列の末尾から計算します。
END
抽出を終了するインデックス(任意)。このインデックスの要素は結果に含まれません。省略すると配列の末尾まで抽出します。負の値を指定すると配列の末尾から計算します。

説明

subarray() 関数は、ARRAY から START 以上 END 未満の範囲に該当する要素を抽出して新しい配列として返します。インデックスは 0 から始まり、負のインデックスは配列の末尾からの位置を表します。例えば、長さ5の配列で -1 は最後の要素(インデックス4)を指します。

以下の状況では null を返します。

  • ARRAYnull の場合
  • START が有効範囲を超えた場合
  • STARTEND より大きい場合

END が配列の長さより大きい場合は配列の末尾まで含みます。

エラーコード

該当なし

使用例

  1. START のみ指定してその位置から末尾まで抽出

    json "{}" | eval arr = subarray(array(1, 2, 3, 4, 5), 2)
    | # arr: [3, 4, 5]
    
  2. STARTEND を両方指定して特定範囲を抽出

    json "{}" | eval arr = subarray(array(1, 2, 3, 4, 5), 2, 4)
    | # arr: [3, 4]
    
  3. 負のインデックスを使用して範囲を指定

    json "{}" | eval arr = subarray(array(1, 2, 3, 4, 5), 1, -1)
    | # arr: [2, 3, 4]
    
  4. START が有効範囲を超えた場合

    json "{}" | eval arr = subarray(array(1, 2, 3, 4, 5), 5)
    | # arr: null
    
  5. ARRAYnull の場合

    json "{}" | eval arr = subarray(null, 0)
    | # arr: null
    

互換性

subarray() 関数は、Sonar 4.0以前のバージョンから提供されています。