Как создать увеличивающийся массив объектов User1, User2 и т. Д. Со значениями объектов, прикрепленными к каждой записи? - PullRequest
0 голосов
/ 07 октября 2019

Попытка получить массив временных пользователей, где следующим пользователем должен быть «user» + ArrayOfUsers.length, но я понятия не имею, как туда добраться, даже после 2 часов работы в Google.

КаждыйПользователь в массиве должен быть связан со значениями объекта моего стандартного пользователя, определенного следующим образом.

function user(name, email, code){
  this.name = name;
  this.email = email;
  this.code = code;
}

1 Ответ

0 голосов
/ 07 октября 2019

Javascript не поддерживает объявление переменных с динамическими именами ... Но вы можете назначить динамический ключ объекту окна (или любому другому объекту) и обращаться к ним как к именам переменных (применимо только для ключей, установленных для объекта окна),

Обратите внимание, что это не будет работать в строгом режиме use strict.

И я не уверен, почему вы хотите использовать его в качестве динамической переменной. В любом случае вы можете сделать это, как показано ниже.

Вы можете сохранить переменную count и установить переменную для объекта окна, используя

this["user"+index] = newUser;

Попробуйте приведенный ниже фрагмент ...

function user(name, email, code) {
  this.name = name;
  this.email = email;
  this.code = code;
}



var index = 0;
function createUser(name, email,code){
    const newUser = new user(name, email, code);
    this["user"+index] = newUser;
    index++;
    return newUser;
}

createUser("a", "a@a.com", 1);
createUser("b", "b@b.com", 2)

for(let i = 0; i< index; i++){
  console.log(this["user"+ i]);
}

console.log(user0);
console.log(user1);
...