如何在另一个对象数组内初始化对象数组?

时间:2019-01-11 23:01:45

标签: javascript arrays object

我有一个问题。如何初始化我的var成分= [];对象“ receita”的内部?像我一样完成吗?还是我必须在内部而不是外部对其进行初始化?

var receitas = [];
var ingredientes = [];



var ingrediente = {
 constructor: function(aNome, aQuantidade){
 this.nome=aNome;
 this.quantidade=aQuantidade;
 }
};

var receita = {
 constructor: function(aTipo, aNome, aTempo, aCusto, aDificuldade, 
 aDescricao, aIngredientes){
 this.nome=aNome;
 this.tipo=aTipo;
 this.tempo=aTempo;
 this.custo=aCusto;
 this.dificuldade=aDificuldade;
 this.descricao=aDescricao;
 this.ingredientes=aIngredientes;
 }
}

感谢您的回复!

2 个答案:

答案 0 :(得分:1)

我猜您实际上正在寻找的是类,请尝试这样做;

var receitas = [];
var ingredientes = [];

class Receita {
  constructor(aTipo, aNome, aTempo, aCusto, aDificuldade, aDescricao, aIngredientes) {
    this.nome = aNome;
    this.tipo = aTipo;
    this.tempo = aTempo;
    this.custo = aCusto;
    this.dificuldade = aDificuldade;
    this.descricao = aDescricao;
    this.ingredientes = aIngredientes;
  }
}

class Ingrediente {
  constructor(aNome, aQuantidade) {
    this.nome = aNome;
    this.quantidade = aQuantidade;
  }
}

因此,要将ingrediente添加到ingredientes数组中,您应该执行以下操作:

var newReceita = new receita('Bolo', 'Bolo de fubá');
ingredientes = [
  new ingrediente('Farinha', 300),
  new ingrediente('Ovos', 2)
]
receita.ingredientes = ingredientes;

答案 1 :(得分:-1)

receita.constructor(...)将在receita中创建所有属性。

enter image description here