代码之家  ›  专栏  ›  技术社区  ›  DoArNa

从JSON对象列表中删除对象类型

  •  0
  • DoArNa  · 技术社区  · 6 年前

    我在Nodejs上有以下课程:

    let id;
    let totalCalls;
    let totalMinutes;
    
    class callVolume { 
        constructor(id){ 
          this.id = id;
          this.totalCalls = 0;
          this.totalMinutes = 0;
        }
    }
    
    module.exports = callVolume; 
    

    在callservice.js文件中,我导入这个类,如果我使用构造函数创建一个对象:

    const callVolume = require('./callVolume');
    let call = new callVolume(1);
    

    如果我控制台日志调用对象,它显示:

    callVolume {
                  "id": 1,
                  "totalCalls" : 0,
                  "totalMinutes" : 0
               }
    

    如果有一个列表,它会不断重复类名callvolume:

    [callVolume {
                  "id": 1,
                  "totalCalls" : 0,
                  "totalMinutes" : 0
               },
     callVolume {
                  "id": 1,
                  "totalCalls" : 0,
                  "totalMinutes" : 0
               }]
    

    我甚至不知道为什么要显示这一点,我有什么办法可以消除它吗?我想要这样的东西:

              [{
                  "id": 1,
                  "totalCalls" : 0,
                  "totalMinutes" : 0
               },
               {
                  "id": 1,
                  "totalCalls" : 0,
                  "totalMinutes" : 0
               }]
    

    我写的方法比较两个对象列表:

    const compareJsonObjects = function(firstList, secondList) {
      if(firstList.length != secondList.length) return false
      else {
        for(i = 0; i<firstList.length; i++) {
          if(firstList[i].id != secondList[i].id) return false;
          if(firstList[i].totalCalls != secondList[i].totalCalls) return false;
          if(firstList[i].totalMinutes != secondList[i].totalMinutes) return false;
        }
       return true;
      }
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   GenericUser    6 年前

    这只是一个调试器,通知您对象的类型,或者更确切地说,它来自哪个类。如果希望它只是一个没有指向类的构造函数属性的纯对象,则可以使用 Object.assign .

    let call = Object.assign({}, new callVolume(1));
    

    这将生成一个空副本,并将值从类实例传输到对象中。