如何迭代到node.js中的类对象的集合

问题描述

我有两个班级一和二

class One {
  constructor(field1,field2) {
    this.field1 = field1;
    this.field2 = field2;
  }
}
module.exports = one;

class Two {
  constructor(field11,field22,list) {
    this.field11 = field11;
    this.field22 = field22;
    this.list = list;
  }
  add(one) {
    this.list.push(one);
  }
}

module.exports = Two;

第三类同时导入两个类

const one= require('./one.js');
const two= require('./two.js');

现在,我有一个函数可以创建第二类的对象,并添加一些值,如

two = new two();
two.add(new one(1,1000)); 
two.add(new one(2,2000));

console.log(two.list); 

//// list是第一个类对象的集合 到现在为止一切正常,我正在收集

我的查询是如何遍历集合 喜欢,我想访问 two.list[0].field1
//没有获得属性field1

解决方法

尝试一下:

class One {
    constructor(field1,field2) {
        this.field1 = field1; this.field2 = field2;
    }
}

class Two {
    constructor(field11,field22,list = []) {
        this.field11 = field11; this.field22 = field22;
        this.list = list
    }

    add(one) {
        this.list.push(one);
    }
}

two = new Two();
two.add(new One(1,1000)); 
two.add(new One(2,2000));

console.log(two.list); 
,

代码中存在一些问题:

  • 命名和括号未正确关闭
  • 默认列表参数的格式也错误

class One {
  constructor(field1,field2) {
    this.field1 = field1;
    this.field2 = field2;
  }
}

class Two {
  constructor(field11,list = []) {
    this.field11 = field11;
    this.field22 = field22;
    this.list = list;
  }
  add(one) {
    this.list.push(one);
  }
}

two = new Two();
two.add(new One(1,2000));

console.log(two.list[0].field1); 

更新了您的代码。尝试运行