5 ms·
Confident coding comes from understanding the language. Array({:foo=>1}).map{|h| h[:foo]} TypeError: Symbol as array index [{:foo=>1}].flatten.compact.m
by klochner 15y ago
Confident coding comes from understanding the language.
Array({:foo=>1}).map{|h| h[:foo]}
TypeError: Symbol as array index
[{:foo=>1}].flatten.compact.map{|h| h[:foo]}
=> [1]
- avdi 15y agoI'm not sure what you're getting at here, other than that trying to treat an array of arrays as an array of Hashes is a bad idea.
- gurkendoktor 15y agoI think the point is that Array(h) destroys the Hash, whereas [h].flatten will leave it intact, adding another unexpected gotcha to Array(). Array's terrible friend Integer() implicitly crashed my app in production before, so found that interesting to know; not necessarily related to your talk though. :)
- vidarh 15y ago[h].flatten on the other hand of course breaks horribly when someone decides that one of the values is meant to hold an array.