从函数中的数组中删除

时间:2018-01-23 21:11:34

标签: javascript arrays

在我的班级中我宣布了一个数组

myUsers = new Array();

我想添加用户名的位置,唯一。 所以我想我会检查ArrayLenght是否为0,如果是,则添加一个User。 哪个工作正常。 如果要添加的用户名(存在于数组中),则应将其删除。 但是这样, 如果我添加一个用户,控制台会显示[" User1"] 如果我尝试添加另一个(另一个User2),控制台会说[" User1",为空] 不能落后于......

isChecked(e) {
     var usersArray = this.myUsers;
     console.log(usersArray.length);


 if(this.myUsers.length == 0) {
      console.log("is 0");
      this.myUsers.push(e);
    } else {
      console.log("is not 0");
      for (var i= 0; i < this.myUsers.length; i++) {
        if (this.myUsers[i] == e) {
           console.log("is in array");
           delete this.myUsers[i];
          } else {
            this.myUsers.push(e);
          }
     }
  }

}

2 个答案:

答案 0 :(得分:0)

delete this.myUsers[i];替换为this.myUsers.splice(i, 1);

答案 1 :(得分:0)

您不想删除该值。这只会清除价值。你想要的是截断数组。为此,请使用splice()功能:

this.myUsers.splice(i, 1);

第一个参数是开始删除的索引。第二个是删除多少个值(在本例中为1)。它改变了实际的数组,因此无需将其分配回去或任何东西。