我的数组包含不同数量的对象。我需要遍历数组并将每个对象保存id
为唯一变量。鉴于数组中的对象数量会有所不同,我应该怎么做?
"items"=>[{"id"=>"B00668BTCI"}, {"id"=>"B0041KJSL2"}]
我需要将信息保存到一个最多可支持 16 个 ID 的新对象中。@object.id_one、@object.id_two 等等……
我的数组包含不同数量的对象。我需要遍历数组并将每个对象保存id
为唯一变量。鉴于数组中的对象数量会有所不同,我应该怎么做?
"items"=>[{"id"=>"B00668BTCI"}, {"id"=>"B0041KJSL2"}]
我需要将信息保存到一个最多可支持 16 个 ID 的新对象中。@object.id_one、@object.id_two 等等……
保存数据的合适方式完全取决于您希望如何引用它或稍后访问它。元编程很有趣也很有趣,但根据您的需要可能会有点过分。您需要在查看选项后确定。另一种方法是在数组中:
array_of_ids = items.map(&:values).flatten
或者
array_of_ids = items.map { |item| item["id"] }
然后所有 ID 都在数组中array_of_ids
,并在您的示例中变为:
["B00668BTCI", "B0041KJSL2"]
可通过以下方式访问:
array_of_ids[0] # first id
array_of_ids[1] # second array
...
你需要在这里做一些元编程......
这是给你的帖子,它有一个答案(Chirantan),展示了如何动态创建实例变量。
希望这可以帮助。
编辑
如果您有兴趣了解更多信息,我还找到了一篇关于动态创建方法的好文章,请查看。