Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

210
Visualizações
How to define a class and using data from outside

I have a class like this

class classname 
 {
  getuser(){}
  deleteuser(){}
 }

there are a list of users, defined out of the class like this

let user =[
 {id:1,name:"username},
 {id:2,name:"username},
]

Already I have a code with functions that work very well. But I have a problem accessing the list of users inside the class. Do I need to create a contractor?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Do I need to create a contractor?

Yes Of course it must, When you're dealing with OOP every class has constructor even you don't create it, it has by default!

I have a problem accessing the list of users inside the class.

Try to declare it before and create your User objects, Then Add them up to the list of users, Play around with them by getting and deleting.

class User {
  constructor(id, name, isVerified) {
    this.id = id;
    this.name = name;
    this.isVerified = isVerified;
  }
  static getUser(id) {
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        let user = users.find((user) => {
          return user.id == id;
        });
        if (user) resolve(user);
        else reject("User not found!");
      }, 2000);
    });
  }
  static deleteUser(id) {
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        let user = users.find((user) => {
          return user.id == id;
        });
        if (user) {
          users = users.filter((user) => user.id !== id);
          resolve("User deleted successfully!");
        } else reject("user not found");
      }, 2000);
    });
  }
}
let users = [];
const u1 = new User(1, "Armin", true);
const u2 = new User(2, "Vahid", true);
const u3 = new User(3, "Steve", false);
users.push(u1, u2, u3);
console.log(await User.getUser(1)); //{ id: 1, name: "Armin", isVerified: true }
console.log(await User.deleteUser(3)); //User deleted successfully!
console.log(users); //[{id: 1, name: 'Armin', isVerified: true}, {id: 2, name: 'Vahid', isVerified: true}]
console.log(await User.getUser(3)); //User not found!
about 4 years ago · Juan Pablo Isaza Relatório

0

I don't recommend using values outside of the a class. The reason for this is that the class doesn't have a way to know if any values are changed or manipulated outside if the instance. Keeping the values as a part of the class will allow every instance to own it's own set of data. For example, you can help multiple sets of users that aren't related in any way, but should still be manipulated with the same methods.

If you need the class to handle the users, then you could pass the users to the class with a constructor or through methods of your own. For example: addUser(id, name) {}

In the example below I've chosen the latter.

You don't need a constructor. Only if you have logic that has to be called whenever you create a new instance of the class, like setting up values and properties.

class Users {
  list = [];
  
  add(id, name) {
    this.list.push({
      id,
      name
    });
  }
  
  get(id) {
    return this.list.find(user => user.id === id);
  }
  
  delete(id) {
    this.list = this.list.filter(user => user.id !== id);
  }
}

// Create users instance.
const users = new Users();

// Add two users.
users.add(0, 'Foo');
users.add(1, 'Bar');
console.log('All users', users.list);

// Get a single user
const userBar = users.get(1);
console.log('User Bar', userBar);

// Delete a single user.
users.delete(0);
console.log('All users after deletion', users.list);

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda