0

編集:すべて修正されました。初級者のミスですが、初級レベルとしては十分にトラブルシューティングできたと思います。しかし、チェックする最も基本的なことを覚えていませんでした。

配列内の X の位置を見つけようとしています。Web サイトによると、次のように動作するはずです。

a = [ "a", "b", "c" , "d"]

a.index("d")

ただし、これだけでは何も返されません。ただし、if ステートメントを追加しました。

a = [ "a", "b", "c" , "d"]

if a.index("d") == 3
  puts "ok"

else 

puts "error"

end

そして、これは機能します。ただし、4 つの配列要素だけではなく何千もの配列要素を推測するので、明らかにこれは最適ではありません。最初のコードは機能するはずですか? そうでない場合、どうすれば配列番号を取得できますか?

二次的な質問: この値「d」(上記のコード) を検索し、その位置を取得した後。位置情報を取得して整数に変換し、数学を適用するにはどうすればよいですか。そして、新しい配列を取得しますか?

さらに、検索される値がこのインデックスの外部で制御できる場合も最適です。検索対象を含む代わりに、インデックスが文字列を指すようにするにはどうすればよいですか?

ありがとう、申し訳ありませんが、私はプログラミングにまったく慣れていません。これまでのところ、私はかなりうまくやっています。

4

2 に答える 2

3

a.index("d")オフセットを配列に返します。

a = [ "a", "b", "c" , "d"]
a.index("d") # => 3

配列インデックスは1ではなく0から始まるので"d"、4ではなくインデックス3で始まることに注意してください。

target_index = a.index("d")
puts target_index
# >> 3
于 2012-08-14T03:53:21.973 に答える
0

わたしにはできる。

どのルビーバージョンを使用していますか(ruby -v)。

私のコード(ruby 1.9.3を使用):

$ irb
1.9.3-p125 :001 > a = [ "a", "b", "c" , "d"]  => ["a", "b", "c", "d"] 
1.9.3-p125 :002 > a.index("d")  => 3

'next'要素を取得するには、たとえば'b'の後に次の1要素を取得するには:

a[a.index("b")+1]

=> "c" 

あなたが見ることができるように、oucrseの「c」は位置2(配列のゼロベースの番号付け)にあります

a.index(a[a.index("b")+1])
=> 2
于 2012-08-14T03:55:15.380 に答える