gpt4 book ai didi

arrays - 如何将数组的唯一副本推送到另一个数组?

转载 作者:太空宇宙 更新时间:2023-11-03 18:12:08 26 4
gpt4 key购买 nike

我正在尝试将子集放入数组中:

def subsets(arr)
subsets = [[]]
temp_arr = []
i = 0
while i < arr.length
temp_arr << arr[i]
subsets << temp_arr
p subsets
i+=1
end
return subsets
end

我的结果是这样的:

[[], ["a"]]
[[], ["a", "b"], ["a", "b"]]
[[], ["a", "b", "c"], ["a", "b", "c"], ["a", "b", "c"]]

为什么每次push temp_array到subset数组,之前push temp_array的结果也变了?

有没有一种方法可以推送 temp_array 的唯一实例并将其保持在该状态?

此外,任何人都可以提示我如何从数组中获取所有子集吗?

最佳答案

subsets << temp_arr

temp_arr 引用实际的 Array 对象。在此之后,附加到 subsets 的元素和 temp_arr 都引用同一个对象。

如果这不是您所期望的,请使用 dup 获取其副本:

subsets << temp_arr.dup

关于arrays - 如何将数组的唯一副本推送到另一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32132575/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com