Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

204
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!