最后值在数组内的数组内被替换

时间:2018-11-07 02:38:51

标签: angular for-loop

嗨,我有两个数组,如下所示:

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

我的第一个数组对象包含帐号。我想在每个选项中附加该帐号。但是有些我最后一个帐号的帐号是每次都被替换的帐号,而不是正确的帐号。有想法吗?

2 个答案:

答案 0 :(得分:1)

您使用map两次,第一个map函数将被迭代,但是第二个map函数将针对第一个map函数的所有索引进行迭代-例如,如果第一个数组有10个索引,第二个数组有10个-第二个每个第一个索引数组将循环10次以更新帐号

最好的方法是使用for循环并根据索引更新对象-只需使用for循环更改第二个区域并使用两个数组if(index === i) { then your code to update object }的索引映射对象,其中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;
                }
              });
            });

我希望这行得通-感谢编码愉快!!

答案 1 :(得分:0)

您确定这些值是数组吗? 您也可以

array.push('new value');

将值附加到数组的末尾,而不更改任何现有值。

或者这句话可能被颠倒了:

obj.accountNumber = account.accountNumber;