我正在开发UI,其中我需要根据条件从对象中检索特定值。对象如下所示。
Category = {["personal_care_appliances", "glwise_category_config", "{catWhitelist: []}"],
["wine","glwise_category_config","{}"],
["shoes","glwise_category_config","{catWhitelist: []}"],
["automotive","glwise_category_config",],
["watch","glwise_category_config","{catWhitelist: []}"]
]
我需要打印第一个元素,例如personal_care_appliances,鞋子,手表,因为它们具有组件catWhitelist:[]。
我尝试使用map和array语法,但是没有用。
PS。我是Ruby的新手,可以通过在线文档学习。
答案 0 :(得分:1)
假设类别是一个数组数组(您的问题尚不清楚),如果嵌套数组包含"{catWhitelist: []}"
,请尝试映射嵌套数组的第一个元素:
category.map { |e| e[0] if e.include? "{catWhitelist: []}" }.compact
# => ["personal_care_appliances", "shoes", "watch"]
或者,最好在映射之前选择所需的子数组:
category.select { |e| e.include? "{catWhitelist: []}" }.map{ |e| e[0] }
答案 1 :(得分:0)
如果我们假设您具有以下数组:
category = [
["personal_care_appliances", "glwise_category_config", "{catWhitelist: []}"],
["wine","glwise_category_config","{}"],
["shoes","glwise_category_config","{catWhitelist: []}"],
["automotive","glwise_category_config",],
["watch","glwise_category_config","{catWhitelist: []}"]
]
,而您只想获取具有catWhitelist的商品,则可以使用以下方法:
def with_cat_whitelist(category)
result = []
category.each do |item|
result << item.first if item.last == "{catWhitelist: []}"
end
result
end