Angular 最后一个值在数组中的数组中被替换

Angular 最后一个值在数组中的数组中被替换,angular,for-loop,Angular,For Loop,嗨,我有两个阵列,如下所示: this.selectedEvntAccList.map(account => { account.options = this.viewItemData.corporateActionOptionDetails; account.options.map(obj => { obj.__hide__ = true; obj.account

嗨,我有两个阵列,如下所示:

this.selectedEvntAccList.map(account => {
              account.options = this.viewItemData.corporateActionOptionDetails;
              account.options.map(obj => {
                obj.__hide__ = true;
                obj.accountNumber = account.accountNumber;
              });
            });

我的第一个数组对象包含帐号。我想在每个选项中添加该帐号。但我的上一个账户的账号是如何被替换的,而不是正确的账号。有什么想法吗?

您使用了两次map,第一个map函数将被迭代,但第二个map函数将对第一个map函数的所有索引进行迭代,就像第一个数组有10个索引,第二个数组有10个索引一样,对于每一个第一个索引,第二个数组将循环10次更新帐号

最好的方法是使用for循环并根据索引更新对象-只需使用for循环更改第二个区域,并使用两个数组的索引映射对象
if(index==i){然后使用更新对象的代码}
,其中i是第二个数组的索引

否则你可以这样写

this.selectedEvntAccList.map((account, index) => {
              account.options = this.viewItemData.corporateActionOptionDetails;
              account.options.map((obj, i) => {
                if(index === i) 
                {
                   obj.__hide__ = true;
                   obj.accountNumber = account.accountNumber;
                }
              });
            });

我希望这能起作用-谢谢快乐编码

您确定这些值是数组吗? 你也能做到

array.push('new value');
在不更改任何现有值的情况下,将值附加到数组的末尾

或者这句话是否可能颠倒过来:

obj.accountNumber = account.accountNumber;

使用示例json生成一个fiddle