質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

2回答

4211閲覧

配列 deleteの引数に配列を渡せない(複数の要素を削除したい)

innjera

総合スコア132

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2017/11/20 03:55

ある配列の要素を複数削除したい時、つまり配列.delete(削除する要素)の引数に配列を入れることはできないのでしょうか?
かなりセンスないと思ってますが、railsの中で、ある配列から、複数削除するといったプログラムを書いていて、deleteの引数に配列を入れることができなかったので、eachで1つ1つdeleteしていくといったあまりにイケてないコードで対応しております。。。。

ruby

1@my_posted_makeup_questions_ids = @user.posted_makeup_questions.map(&:id) 2@my_posted_makeup_questions_ids.each do |id| 3 @answered_makeup_questions_ids.delete(id) 4end 5 6@my_posted_makeup_questions_ids@answered_makeup_questions_ids共に配列(Array)です

アドバイスをお願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Array#delete_ifというメソッドがあります(ただ、単純に「回してdelete」でもそこまで悪くない気もします)。

@answered_makeup_questions_ids.delete_if { |id| @my_posted_makeup_questions_ids.include?(id) }

投稿2017/11/20 03:58

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

innjera

2017/11/20 13:58

有難うございます!delete_if、知らなかったので勉強になりました!eachだと3行になってしまっていたのが1行になったので見通しもスッキリしました!
guest

0

参考情報

  • 配列の複数要素の削除はdelete_ifかreject、-なんかを使おう

https://qiita.com/zom/items/4461d786c35ae9eced0b

投稿2017/11/20 14:56

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問