javascript - 如何将一组对象添加到单个数组中?

标签 javascript jquery arrays object

我正在插入一个主题和消息相同但收件人不同的电子邮件收件人列表。

我已经尝试了下面显示的一些方法,它得到了要发送的收件人的数量,但对于收件人来说,它只得到了最后一个被插入数组的收件人,这就是为什么它被发送给同一个收件人 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

最佳答案

您只分配给 addEmailObj 一次:

var addEmailObj = []

这意味着每次您改变或推送 addEmailObj 时,您都在改变或推送相同的对象。改为在数组中创建它:

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

请注意,由于您没有将其用作数组,因此不应将其定义为数组 - 只需将其定义为普通对象,使用 {},而不是 [ ]。 (此外,最好不要隐式创建全局变量 - 正确声明你的 i)如果可能的话,也用 ES6 语法声明你的变量(letconst) 而不是 ES5 语法,以避免因 var 的提升而引起的混淆。 (var 是函数作用域,不是 block 作用域)

关于javascript - 如何将一组对象添加到单个数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56000035/

相关文章:

javascript - 如何在 rad 文件资源管理器中搜索当前文件夹(包括子文件夹)

jquery - 悬停在图像上时显示下拉菜单

C++ 无法将参数 1 从 'int**' 转换为 'const int **'

python - 切片 dask 数组中的 n 个单独元素

javascript - 在 react 运动中,如何重置动画?

javascript - ecma262 中的赋值表达式

javascript - 由于文档的框架被沙盒化而阻止脚本执行 - Angular 应用程序

javascript - 循环遍历数组以检查输入值的列是否为空

javascript - 如何实现/模仿 jQuery UI 的日期选择器?

php - 我怎样才能输入这个数组