gpt4 book ai didi

perl - Perl 中数组的哈希值 : traversal and deletion

转载 作者:行者123 更新时间:2023-12-04 16:37:26 26 4
gpt4 key购买 nike

如何从以下数组散列中删除一个元素;

%HoA = (
flintstones => [ {day=>'19'}, {day=>'21'}, {day=>'22'} ],
jetsons => [ {day=>'29'}, {day=>'23'}, {day=>'25'} ],
simpsons => [ {day=>'26'}, {day=>'33'}, {day=>'27'} ]
);

比如我如何删除,例如 {day=>'21'}来自 flintstones并使结果看起来像;
%HoA = (
flintstones => [ {day=>'19'}, {day=>'22'} ],
jetsons => [ {day=>'29'}, {day=>'23'}, {day=>'25'} ],
simpsons => [ {day=>'26'}, {day=>'33'}, {day=>'27'} ]
);

我试过使用 Hash = ();但这会导致 undef,代替我删除的元素

最佳答案

如果您知道要删除 [1] flintstones 数组中的元素,您可以使用 splice直接地:

splice @{$HoA{flintstones}}, 1, 1;

如果您只是知道要删除 day = 21 的元素,请使用 grep或者以这种方式:
$HoA{flintstones} = [ grep { $_->{day} != 21 } @{$HoA{flintstones}} ];

或者以更好的方式,正如肖恩的回答所建议的那样:
@{$HoA{flintstones}} = grep { $_->{day} != 21 } @{$HoA{flintstones}};

关于perl - Perl 中数组的哈希值 : traversal and deletion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2369157/

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