简体   繁体   中英

User defined objects in Javascript

ok, so below is the code that creates a user defined object with two properties. Runs fine but the values gets over-written. How do i display all the values that the user enters in the object "objOrg"

const size = Number(prompt("Enter the number of employees to be registered"));
const orgObj = {};
    for (let i = 0; i<=size; i++){
        Object.defineProperties(orgObj, {
              empName: {
                 value: prompt("Enter employee name"),
                 writable: true
        },
              empId: {
                 value: prompt("Enter employee id"),
                 writable: true
        }
    })

}
console.log(orgObj);

Sounds like you just want to create an array of orgs and add each one to it?

 const size = Number(prompt("Enter the number of employees to be registered")); const orgs = []; for (let i = 0; i < size; i++){ const orgObj = {}; Object.defineProperties(orgObj, { empName: { value: prompt("Enter employee name"), writable: true, enumerable: true }, empId: { value: prompt("Enter employee id"), writable: true, enumerable: true } }); orgs.push(orgObj); } console.log(JSON.stringify(orgs));

You can use a class Employee to achieve this

 const size = Number(prompt("Enter the number of employees to be registered")); class Employee { constructor(name, id) { this.name = name; this.id = id; } } let employees = []; for (let i = 0; i < size; i++) { let value = prompt("Enter employee name"); let id = prompt("Enter employee ID"); employees[i] = new Employee(value, id); console.log(employees[i]); } console.log(employees);

 const size = Number(prompt("Enter the number of employees to be registered")); const orgObj = {}; for (let i = 1; i<=size; i++){ Object.defineProperties(orgObj, { ['empName'+i]: { value: prompt("Enter employee name"), writable: true, enumerable:true, }, ['empId'+i]: { value: prompt("Enter employee id"), writable: true, enumerable:true, } }) } console.log(orgObj);

You could push the objects to an array

 const size = Number(prompt("Enter the number of employees to be registered")); const arr=[] const orgObj = {}; for (let i = 0; i<=size; i++){ Object.defineProperties(orgObj, { empName: { value: prompt("Enter employee name"), writable: true }, empId: { value: prompt("Enter employee id"), writable: true } }) arr.push(orgObj) } console.log(arr);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM