繁体   English   中英

如何将数组元素扩展为子数组?

[英]How to expand elements of an array into sub-arrays?

我有一个巨大的阵列

huge = 1000
huge_array = (1..huge).to_a

如何最好地“扩展”这个数组,使每个元素成为格式[original_element,“默认值”]的子数组,最好是以内存友好的方式(没有明确的#map循环?)

expanded_huge_array = huge_array.some_magic
#=> [[1, "default value"],[2, "default value"], ... [1000, "default value"]]
huge_array.zip(['default value'] * huge_array.size)

顺便说一句,您可以使用默认情况下的Hash 模拟此行为:

arr = Hash.new { |h, key| huge_array.include?(key) ? [key, 'default value'] : nil }
arr[1]
#⇒ [1, 'default value']
arr[10000]
#⇒ nil

试试Array#product

返回所有数组中所有元素组合的数组。

>> [1,2,3].product(["a"])
=> [[1, "a"], [2, "a"], [3, "a"]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM