Как добавить набор объектов в один массив? - PullRequest
1 голос
/ 06 мая 2019

Я вставляю список получателей электронной почты с той же темой и сообщением, но разными получателями.

Я уже попробовал какой-то метод, показанный ниже, он получает количество получателей, которые будут отправлены, но для получателя он получает только последнего получателя, помещенного в массив, поэтому он был отправлен одному и тому же получателю 3 раза .

        var emailsObj = [];
        var addEmailObj = [], obj;
        for (i=0 ; i<rowData.length; i++) {
            addEmailObj["claimNo"] = $('#motorClaimNoInfo').val().trim().toUpperCase();
            addEmailObj["fileNo"] = $('#motorClaimNoInfo').attr('fileNo');
            addEmailObj["claimDate"] = $('#motorClaimNoInfo').attr('claimDate');
            addEmailObj["senderCd"] = $('#motorClaimFileComposeEmailFrom').attr('username');
            addEmailObj["sender"] = $('#motorClaimFileComposeEmailFrom').val();
            addEmailObj["senderEmail"] = $('#motorClaimFileComposeEmailFrom').attr('userEmail');
            addEmailObj["recipientCd"] = rowData[i].username;
            addEmailObj["recipient"] = rowData[i].userFullName;
            addEmailObj["recipientEmail"] = rowData[i].userEmail;
            addEmailObj["subject"] = $('#motorClaimFileComposeEmailSubj').val().trim().toUpperCase();
            addEmailObj["message"] = $('#motorClaimFileComposeEmailMsg').val().trim().toUpperCase();
            emailObj.push(addEmailObj[i]);
            emailsObj.push(rowData[i].username);
        }

Here's the console for this code
```[INFO ] 2019-05-06 14:25:37.766 [http-nio-8080-exec-10] MotorClaimInquiryController - emailObj {claimNo=100161002000351, fileNo=1, claimDate=11-21-2016, senderCd=MGSIMBIL, sender=MICHELLE G. SIMBILLO, senderEmail=MGSIMBILLO@MAPFREINSULAR.COM, recipientCd=ABSERNIO, recipient=SERNIO, ANNABEL BENAS, recipientEmail=ABSERNIO@MAPFREINSULAR.COM, subject=100161002000351-01, message=}
[INFO ] 2019-05-06 14:25:39.059 [http-nio-8080-exec-10] MotorClaimInquiryController - emailObj {claimNo=100161002000351, fileNo=1, claimDate=11-21-2016, senderCd=MGSIMBIL, sender=MICHELLE G. SIMBILLO, senderEmail=MGSIMBILLO@MAPFREINSULAR.COM, recipientCd=ABSERNIO, recipient=SERNIO, ANNABEL BENAS, recipientEmail=ABSERNIO@MAPFREINSULAR.COM, subject=100161002000351-01, message=}
[INFO ] 2019-05-06 14:25:40.578 [http-nio-8080-exec-10] MotorClaimInquiryController - emailObj {claimNo=100161002000351, fileNo=1, claimDate=11-21-2016, senderCd=MGSIMBIL, sender=MICHELLE G. SIMBILLO, senderEmail=MGSIMBILLO@MAPFREINSULAR.COM, recipientCd=ABSERNIO, recipient=SERNIO, ANNABEL BENAS, recipientEmail=ABSERNIO@MAPFREINSULAR.COM, subject=100161002000351-01, message=}

The result should have different recipients. Thanks

Ответы [ 2 ]

2 голосов
/ 06 мая 2019

Вы назначаете addEmailObj только один раз:

var addEmailObj = []

Это означает, что каждый раз, когда вы мутируете или нажимаете addEmailObj, вы мутируете или нажимаете один и тот же объект . Вместо этого создайте его внутри массива:

for (let i=0 ; i<rowData.length; i++) {
  const addEmailObj = {};

Обратите внимание, что, поскольку вы не используете его как массив, вы не должны определять его как массив - просто определите его как простой объект, с {}, а не []. (Кроме того, лучше не создавать неявно глобальные переменные - правильно объявите свой i) Если это вообще возможно, также объявите свои переменные с синтаксисом ES6 (let и const), а не с синтаксисом ES5, чтобы избежать путаницы, которая может возникнуть от var подъем. (var имеет область действия функции, а не область блока)

0 голосов
/ 06 мая 2019
               // let emailsObj = [];
            let addEmailObj = [];
            for (i=0 ; i<rowData.length; i++) {

    let new_user = {
        'claimNo':$('#motorClaimNoInfo').val().trim().toUpperCase(),
        'fileNo':$('#motorClaimNoInfo').attr('fileNo'),
        'claimDate':$('#motorClaimNoInfo').attr('claimDate'),
        'senderCd':$('#motorClaimFileComposeEmailFrom').attr('username'),
        'sender':$('#motorClaimFileComposeEmailFrom').val(),
        'senderEmail':$('#motorClaimFileComposeEmailFrom').attr('userEmail'),
        'recipientCd':rowData[i].username,
        'recipient':rowData[i].userFullName,
        'recipientEmail':rowData[i].userEmail,
        'subject':$('#motorClaimFileComposeEmailSubj').val().trim().toUpperCase(),
        'message':$('#motorClaimFileComposeEmailMsg').val().trim().toUpperCase()

    };
                addEmailObj.push(new_user);
                // emailsObj.push(rowData[i].username);
            }**

>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...