【问题标题】:How to insert objects through javascript?如何通过javascript插入对象?
【发布时间】:2017-03-09 07:21:36
【问题描述】:

我已将一组对象存储到一个名为“resData”的数组中,并且我还有一个名为“approvedIds”的数据数组,其中包含所有已批准的 ID。在这里,我想匹配这两个数组并将一个新键添加到“resData”数组中,例如“approveStatus:“approve””。如何在javascript中做到这一点?

所有数据,

var resData = [
    {
        firstName:"Jhon",
        lastName:"adam",
        emailId:"jhn12@gmail.com",
        id:"01"
    },
    {
        firstName:"Kyle",
        lastName:"Miller",
        emailId:"kl12@gmail.com",
        id:"02"
    },
    {
        firstName:"Jhonathan",
        lastName:"adam",
        emailId:"jadm12@gmail.com",
        id:"03"
    },
    {
        firstName:"Lewis",
        lastName:"harber",
        emailId:"lewh12@gmail.com",
        id:"04"
    }
];

批准的id的数组,

var approvedIds = ['01', '03'];

我的输出会是这样的,

var resData = [
        {
            firstName:"Jhon",
            lastName:"adam",
            emailId:"jhn12@gmail.com",
            id:"01",
            approveStatus:'approved'
        },
        {
            firstName:"Kyle",
            lastName:"Miller",
            emailId:"kl12@gmail.com",
            id:"02"
        },
        {
            firstName:"Jhonathan",
            lastName:"adam",
            emailId:"jadm12@gmail.com",
            id:"03",
            approveStatus:'approved'
        },
        {
            firstName:"Lewis",
            lastName:"harber",
            emailId:"lewh12@gmail.com",
            id:"04"
        }
    ];

【问题讨论】:

    标签: javascript jquery arrays reactjs


    【解决方案1】:

    你可以试试这个。使用forEachindexOf 函数

    var resData = [
        {
            firstName:"Jhon",
            lastName:"adam",
            emailId:"jhn12@gmail.com",
            id:"01"
        },
        {
            firstName:"Kyle",
            lastName:"Miller",
            emailId:"kl12@gmail.com",
            id:"02"
        },
        {
            firstName:"Jhonathan",
            lastName:"adam",
            emailId:"jadm12@gmail.com",
            id:"03"
        },
        {
            firstName:"Lewis",
            lastName:"harber",
            emailId:"lewh12@gmail.com",
            id:"04"
        }
    ];
    
    
    var approvedIds = ['01', '03'];
    
    resData.forEach(item => {
      if(approvedIds.indexOf(item.id) !== -1){
           item.approvedStatus = 'approved';
        }
    } );
    
    console.log(resData);

    【讨论】:

      【解决方案2】:

      使用 ES6 数组函数,功能更强大,不会改变原始对象:

      var resData = [
          {
              firstName:"Jhon",
              lastName:"adam",
              emailId:"jhn12@gmail.com",
              id:"01"
          },
          {
              firstName:"Kyle",
              lastName:"Miller",
              emailId:"kl12@gmail.com",
              id:"02"
          },
          {
              firstName:"Jhonathan",
              lastName:"adam",
              emailId:"jadm12@gmail.com",
              id:"03"
          },
          {
              firstName:"Lewis",
              lastName:"harber",
              emailId:"lewh12@gmail.com",
              id:"04"
          }
      ];
      
      var approvedIds = ['01', '03'];
      
      //Solution:
      var newData = resData
                       .filter(rd => approvedIds.indexOf(rd.id) >= 0)
                       .map(rd => Object.assign({}, rd, {approvedStatus: "approved"}));
      
      console.log(newData, resData);

      【讨论】:

        猜你喜欢
        • 2019-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多