Ich versuche, die Werte bei der Funktion addUser zu platzieren, um sie auf ein anderes Funktionsobjekt zu übertragen. Ich weiß nicht, wie und was ich an den Eingabeaufforderungswert für .id und .pwd setzen soll.

var memArray  =[];

function addUserObject(id, password){
 this.id          = id; 
 this.pwd         = password
 }
 var addUserObj = new addUserObject ("") 
 // i dont how and what to put the prompt value to .id and .pwd

 memArray.push(addUserObj);
 console.log(memArray)


  function addUser(){
  var addUsername = prompt ("Type your username");
  var addPwd = prompt ("Type your password");
  addUserObject(addUsername,addPwd)
1
fendi 22 Feb. 2020 im 13:21

4 Antworten

Beste Antwort

Sobald Sie ein Objekt erstellt haben, muss es Eigenschaften und Methoden enthalten, sodass es in Ordnung ist, alle Objekte in einer Instanz zu implementieren.

var memArray  =[];

function addUserObject(){
 var id, pwd;
 this.getData = function(){
    return {
    id: this.id,
    pwd: this.pwd
    }
 }
 this.setData = function(){
    this.id = prompt ("Type your username");
    this.pwd = prompt ("Type your password");
  }
  return this.setData();
}

var user = new addUserObject;
 
 memArray.push(user.getData());
 console.log(memArray)
0
Banzay 22 Feb. 2020 im 11:06

Wenn Sie Konstruktorfunktionen verwenden möchten, können Sie eine Funktion erstellen, die ein neues Objekt zurückgibt:

function userObject(id, name, password){
    this.id = id;
    this.name = name;
    this.pwd = password
}

let userBob = new userObject(1, 'Bob', 'fooPsw');
let userJoseph = new userObject(2, 'Joseph', 'barPsw');
let userJohn = new userObject(3, 'John', 'barPsw');

Und dann schieben Sie diese Objekte einfach in ein Array:

let users = [];
function addUser(id, name, password)
{    
    let user = new userObject(id, name, password);
    users.push(user);
}

addUser(1, 'Bob', 'fooPsw');
addUser(2, 'Joseph', 'barPsw');
addUser(3, 'John', 'barPsw');

Der gesamte Code sieht folgendermaßen aus:

function userObject(id, name, password){
    this.id = id;
    this.name = name;
    this.pwd = password
}


let users = [];
function addUser(id, name, password)
{    
    let user = new userObject(id, name, password);
    users.push(user);
}

addUser(1, 'Bob', 'fooPsw');
addUser(2, 'Joseph', 'barPsw');
addUser(3, 'John', 'barPsw');


console.log(users);
0
StepUp 22 Feb. 2020 im 11:15

Eine Möglichkeit besteht darin, die Funktionalität zu this hinzuzufügen, genau wie die von Ihnen erstellten Eigenschaften:

function addUserObject(id, password){
  this.id = id; 
  this.pwd = password;
  
  this.addUsername = function(){this.id = prompt("Type your username")}.bind(this);
  this.addPwd = function(){this.pwd = prompt("Type your password")}.bind(this);
};

var addUserObj = new addUserObject();
 
//REM: Adding username
addUserObj.addUsername();
console.log(addUserObj);
 
 //REM: Adding paddword
addUserObj.addPwd();
console.log(addUserObj);

Der zweite Weg ist, bei der Schöpfung danach zu fragen:

function addUserObject(id, password){
  this.id = id; 
  this.pwd = password;
}

var addUserObj = new addUserObject(prompt("name?"), prompt("pw?"));
console.log(addUserObj);
1
Lain 22 Feb. 2020 im 10:54

Auf die Gefahr hin, dass Sie Ihr Problem nicht verstanden haben, können Sie den Benutzer erst hinzufügen, wenn Sie den Benutzernamen und das Kennwort kennen (bis die Eingabeaufforderungsanforderungen abgeschlossen sind).

Versuchen Sie das zu tun?:

// Initialize an empty array
var memArray  =[];

// Define helper function to add a user to the array
function addUserObject(id, password){

	// Define a user object
	var userObj = {
		id: id,
		password: password
	};

	// Push the new user into the array
	memArray.push(userObj);
}

// Define a function that requests user and pwd
function addUser(){

	// Request username and pwd
	var addUsername = prompt ("Type your username");
	var addPwd      = prompt ("Type your password");

	// Call to add the user to the array
	addUserObject(addUsername, addPwd);
}

// Call the 'addUser' function to request a new user
addUser();

// Print the array to console (it should contain one user)
console.log(memArray);

Ich habe den Code übermäßig kommentiert, nur damit Sie verstehen.

1
vicpermir 22 Feb. 2020 im 10:47