Menu
CoddyTech

配列のスライス

CoddyのGDScriptジャーニー「基礎」セクションの一部。レッスン 73/92。

slice() メソッドは、要素の一部を含む新しい配列を返します。slice(begin, end) は、インデックス begin からインデックス end の直前までの要素を取得します。

var numbers := [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(numbers.slice(2, 6))
[2, 3, 4, 5]

endを指定しない場合、スライスは配列の末尾まで続きます:

print(numbers.slice(5))
[5, 6, 7, 8, 9]

負のインデックスは末尾から数えます。slice(-3) は最後の3つの要素を取得し、slice(0, -2) は最後の2つを除いたすべての要素を取得します。

print(numbers.slice(-3))
print(numbers.slice(0, -2))
[7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7]

3つ目の引数であるステップは、n個おきの要素を取得します。slice(1, 8, 2)はインデックス1、3、5、7の要素を取得します。

print(numbers.slice(1, 8, 2))
[1, 3, 5, 7]

slice()は元の配列を変更しません。numbersには引き続き10個すべての要素が格納されています。

challenge icon

チャレンジ

簡単

プログラムは、カンマ区切りの項目の行を配列 items に読み込みます(すでに記述済みです)。slice() を使って配列の中央部分を出力してください。

  • 項目数が奇数の場合は、中央の項目とその両側の項目を1つずつ出力します(3項目。項目が1つだけの場合は、その項目を出力します)
  • 偶数の場合は、中央の2項目を出力します

apple,banana,orange,grape の場合、出力は ["banana", "orange"] となり、a,b,c,d,e の場合は ["b", "c", "d"] となります。

自分で試してみよう

extends Node

func _ready():
	var items := OS.read_string_from_stdin().split(",")
	# 中央の要素を出力する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: GDScriptオンラインコンパイラ