0

私は問題があります。Google Sketchup のプラグインをコーディングしています。配列値を除外して、フィルター処理された値を別の配列に配置しようとしています。これは次のように行われます。

for z in 0..points.length
  points2[z]=points[z][1]
end

ここで、「points」は double 配列です。誰かが私が間違っていることを教えてもらえますか?

4

3 に答える 3

4

これはより良いはずです:

points2 = points.map {|p| p[1]}
于 2013-06-05T20:13:34.840 に答える
2

あなたが間違っているのは、一度ループすることです。偽のデータの使用:

ar = [1,2,3]
ar2 = []
for z in 0..ar.length 
#off by one! Should be one less. But then you should test for empty arrays...
  ar2[z] = ar[z]
end
p ar2 #[1, 2, 3, nil]

他の回答は主張mapしており、それらは正しいですが、次のように for ループをエラーが発生しにくいものに変換できます。

for z in ar
  ar2 << z
end
于 2013-06-05T20:54:26.380 に答える
1

あなたは何を間違っていますか?for私はループのファンです。機能的なスタイルを使用する必要があります。ルビーの方法:

points2 = points.map { |element| element[1] }

それ以外の場合は、 for ループを診断してもらいたい場合は、より良い例を投稿する必要があります。

于 2013-06-05T20:18:34.600 に答える