提问者:小点点

我无法向对象数组添加属性


你好,这是我第一次使用JavaScript。 我想问点事。 为什么我不能将值加到对象数组中? 我想添加一些验证。 这是我的密码。

let user = [];

function register(username, password) {

    this.id = user.length + 1;
    this.username = username;
    this.password = password;
}

function addUser(username, password) {
    for(var i=0; i< user.length; i++){
        if(user[i].username != username){
            user.push(new register(username, password))
        }
    }
}

共2个答案

匿名用户

如果您想验证用户名是否未被使用,我将执行如下操作:

function addUser(username, password) {
    var used = false;
    for(var i=0; i< user.length; i++){
        if(user[i].username === username){
            used = true;
        }
    }

    if (!used) {user.push(new register(username, password));}
}

匿名用户

由于@Taplar的主要作用,您可以使用array.find方法和callback来获取用户。 如果不是,使用添加/推送添加用户。

let users = [];

function register(username, password) {
  this.id = users.length + 1;
  this.username = username;
  this.password = password;
}

function addUser(username, password) {
  const user = users.find(user => user.username != username)
  if(!user) users.push(new register(username, password))
}