LINUX.ORG.RU

История изменений

Исправление 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 нет прямого аналога, нужно копировать ключ за ключом в цикле.