2017-04-12 1 views
2

J'ai un tableau. Par exemple,Suppression de plusieurs éléments de tableau par index dans Ruby

x = [1,2,3,4,5] 

Je sais la commande

x.delete_at(i) 

supprimera l'élément à l'index i du tableau. Mais d'après ce que j'ai lu, il ne peut gérer qu'un seul argument. Disons que j'ai une variable qui stocke les index que je souhaite retirer de x. Par exemple,

y = [0,2,3] 

Ma question: Est-il possible de supprimer plusieurs éléments d'un tableau en utilisant un autre tableau qui stocke dans les indices que vous souhaitez supprimer à?

En substance, quelque chose comme

x.delete_at(y) 

Merci! :)

Répondre

2

Vous pouvez utiliser reject avec with_index:

x.reject.with_index { |e,i| y.include? i } #=> [2,5] 
+0

@AndreyDeineko Je pense que [ce] (https://meta.stackexchange.com/questions/91922/how-was-this-answer-posted -after-this-question-was-closed) répond à votre requête. Aussi, en guise de remarque, recommandez-vous que je supprime cette réponse? –

+1

Thx pour le lien au fil de discussion! Vous utilisez 'reject' et la question liée utilise' delete_if', donc je pense que c'est quelque chose de nouveau et je ne vous dirai pas que vous devez le supprimer :) Mais à vous, bien sûr :) –