【发布时间】:2021-11-30 18:37:57
【问题描述】:
我有一个哈希数组,我需要将它分成两个不同的数组。 Hash 数组如下所示:
old_array = [
{
'a'=>1,
'b'=>2,
'c'=>3,
'd'=>4
},
{
'e'=>5,
'f'=>6,
'g'=>7,
'h'=>8
},
{
'i'=>9,
'j'=>10,
'k'=>11,
'l'=>12
},
{
'm'=>13,
'n'=>14,
'o'=>15,
'p'=>16
}
];
我需要把它分成两个不同的数组:
new_array_1 = [{
'a'=>1,
'b'=>2,
'c'=>3,
'd'=>4
},
{
'e'=>5,
'f'=>6,
'g'=>7,
'h'=>8
}
];
new_array_2 = [{
'i'=>9,
'j'=>10,
'k'=>11,
'l'=>12
},
{
'm'=>13,
'n'=>14,
'o'=>15,
'p'=>16
}
];
我现在已经尝试了答案之一中提到的以下代码:
my ($new_array_1, $new_array_2) =
map { [ $_ ] }
@$old_array;
这是拆分数组,但删除了中间的哈希值,我得到的输出为:
$VAR1 = [
{
'c' => 3,
'a' => 1,
'b' => 2,
'd' => 4
}
];
$VAR1 = [
{
'g' => 7,
'f' => 6,
'e' => 5,
'h' => 8
}
];
我应该怎么做才能获得所需的输出?哈希值可能会增加到 10 或 20 或 15 等。
【问题讨论】: