无法删除从控制台引入的某个数组值

时间:2013-10-07 22:00:04

标签: ruby arrays

我有这个file.rb,当我从终端运行它时,我想删除某个输入值。但是,阵列保持不变。有什么帮助吗?

   def delete
    print "Introduce the parameter for the delete action"
    delete_value = gets.chomp
    p @array.select { |e| e!= "#{delete_value}"}

    #@second_array = @array.reject! {|x| x == "#{delete_value}" }   
    #puts @second_array
   end

2 个答案:

答案 0 :(得分:0)

此方法返回包含所有匹配项的新数组。你的原始数组确实根本没有变化。

供进一步参考:http://ruby-doc.org/core-2.0.0/Enumerable.html#method-i-select

答案 1 :(得分:0)

你有一系列数字:

@array = [-3,6,5,3,10,6,2,3,9,-3,-2,-5]

但是你的delete_value是一个字符串:

delete_value = gets.chomp
每个Fixnum a == b和字符串a

b为false(类似a != b总是如此),因此您需要将b转换为一个如下的数字:

delete_value = gets.to_i
@array.reject! { |x| x == delete_value }

Ruby不会像某些语言那样自动在字符串和数字之间进行转换,您必须使类型匹配并手动执行类型转换。