16

私はこの配列を持っているとしましょう:

array = ["str1", "str2", "str3", "str4", "str5", "str6", "str7", "str8"]

私がやっていること:

array.delete_if {|i| i == "str1" || i == "str3" || i == "str5"}

私は得た:

["str2", "str4", "str6", "str7", "str8"]

これを行うためのルビーでのより良いアプローチはありますか?

4

2 に答える 2

37

あなたはこれを行うことができます:

array - %w{str1 str2 str3}

これは、 (そうであるように) 直接変更するのではなく"str1"、 、"str2"、および削除された新しい配列を返すことに注意してください。次のように、新しい配列を簡潔に再割り当てできます。"str3"arraydelete_ifarray

array -= %w{str1 str2 str3}
于 2012-09-14T19:33:31.177 に答える