将数组推入 ruby 上的数组仅一级
Push array into array on ruby by just one level
鉴于:
a = [[1,"a"],[2,"b"]]
b = [[3,"c"],[4,"d"]]
我想把a
变成[[1,"a"],[2,"b"][3,"c"],[4,"d"]]
。没有 +
怎么办?它创建了一个我想避免的新数组。
(a << b).flatten(1)
# => [1, "a", 2, "b", [3, "c"], [4, "d"]]
a.concat(b)
.......................
怎么样?
a.push(b.shift) while b.any?
a = [[1,"a"],[2,"b"]]
b = [[3,"c"],[4,"d"]]
a[a.length, 0] = b
a
# > [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]
concat
是答案,但您可以这样做:
a.object_id #=> 70223889895340
a.replace(a+b) #=> [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]
a #=> [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]
a.object_id #=> 70223889895340
> b.inject(a, :<<)
#=> [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]
这个怎么样?
a + b
=> [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]
鉴于:
a = [[1,"a"],[2,"b"]]
b = [[3,"c"],[4,"d"]]
我想把a
变成[[1,"a"],[2,"b"][3,"c"],[4,"d"]]
。没有 +
怎么办?它创建了一个我想避免的新数组。
(a << b).flatten(1)
# => [1, "a", 2, "b", [3, "c"], [4, "d"]]
a.concat(b)
.......................
怎么样?
a.push(b.shift) while b.any?
a = [[1,"a"],[2,"b"]]
b = [[3,"c"],[4,"d"]]
a[a.length, 0] = b
a
# > [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]
concat
是答案,但您可以这样做:
a.object_id #=> 70223889895340
a.replace(a+b) #=> [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]
a #=> [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]
a.object_id #=> 70223889895340
> b.inject(a, :<<)
#=> [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]
这个怎么样?
a + b
=> [[1, "a"], [2, "b"], [3, "c"], [4, "d"]]