我正在尝试向哈希值添加元素。 例如:
tally={}
tally["aa"]=[1]
tally["aa"].append(2) => so it should be tally["aa"]=[1,2]
我的代码:
def list_duplicates(seq)
tally = {}
seq.each_with_index do |item,i|
if tally[item].nil?
tally[item]=[i]
else
tally[item].add(i)
end
end
a=tally.keys()
b=tally.values()
if b.length>1
return [a,b]
end
end
sourse=["AAA","GGG","AAA","BBB","AAA","BBB","agaha"]
list_duplicates(sourse).each do |l|
puts(l)
end
但是它显示了一个错误:
undefined method `append' for []:Array (NoMethodError)
如何将项目附加到现有项目的值?
答案 0 :(得分:2)
您只需使用push
或<<
代替append
。
答案 1 :(得分:2)
您可以使用push()
或<<
。在append()
类
Array
tally["aa"].push(a)
或tally["aa"] << a
答案 2 :(得分:1)
Ruby documentation中显示的Array没有“append”方法。您的代码示例显示add
,而不是append
,它也不是Array的方法。使用tally[item] << i
。