История изменений
Исправление DRVTiny, (текущая версия) :
Есть ассоциативный массив:
var h1={"a": "A", "b": "B"};
Мне нужен h2, содержащий всё то же самое, нужно модифицировать его свойства, но мне не нужно, чтобы изменялся исходный h1.
Безусловно, в том же perl конструкция вида
my $h1={
'key00'=>{'key10'=>'value'}
};
my $h2;
%{$h2}=%{$h1};
$h2->{'key00'}{'key10'}='new_value';
- приведёт к аффекту на h1 при изменении h2, но здесь логика самоочевидна: значениями ключей являются ссылки, они-то и копируются. Но даже для этого, насколько я понимаю, в JS нет прямого аналога, нужно копировать ключ за ключом в цикле.
Исходная версия DRVTiny, :
Есть ассоциативный массив:
var h1={"a": "A", "b": "B"};
Мне нужен h2, содержащий всё то же самое, нужно модифицировать его свойства, но мне не нужно, чтобы изменялся исходный h1.
Безусловно, в том же perl конструкция вида
my $h1={
'key00'=>{'key10'=>'value'}
};
my $h2;
%{$h2}=%{$h1};
$h2->{'key00'}{'key10'}='new_value';
- приведёт к аффекту на h1 при изменении h2, но здесь логика самоочевидна: значениями ключей являются ссылки, они-то и копируются. Но даже для этого, насколько я понимаю, в JS нет прямого аналога, нужно копировать ключ за ключом в цикле.