Javascript 单击将数组项移动到另一个数组
我有两种数组,它们是Javascript 单击将数组项移动到另一个数组,javascript,arrays,function,addeventlistener,Javascript,Arrays,Function,Addeventlistener,我有两种数组,它们是 var arrayAdmins = [{"firstName": "Admin", "lastName": "User", "email": "test@1.com","password": "admin"}]; var aBlocked = [{"firstName": "Blocked", "lastName": "User", "email": "test2@2.com","password": "blocked"}] 为了简化这个问题,我有一个按钮: <in
var arrayAdmins = [{"firstName": "Admin", "lastName": "User", "email": "test@1.com","password": "admin"}];
var aBlocked = [{"firstName": "Blocked", "lastName": "User", "email": "test2@2.com","password": "blocked"}]
为了简化这个问题,我有一个按钮:
<input type="button"id="switch">
我想做的是,当单击按钮时,用户从名为
aBlocked
的数组转到arrayAdmins
。因此,我希望通过某个管理面板,管理员可以将用户从被阻止状态删除为管理员。好吧,您需要有一种方法来确定要在UI中移动的用户
然后,只需从一个数组中删除用户并将其附加到另一个数组中。例如,如果要删除已锁定的a的第二个用户(如果有),并将其添加到arrayAdmins
,可以执行以下操作:
var unblockedUser = aBlocked.splice(1, 1)[0];
arrayAdmins.push(unblockedUser);
你的用户应该有一个“id”,这样你就可以在你的数组中识别他们,我假设在你的情况下,电子邮件是唯一的
var arrayAdmins = [{"firstName": "Admin", "lastName": "User", "email": "test@1.com","password": "admin"}];
var aBlocked = [{"firstName": "Blocked", "lastName": "User", "email": "test2@2.com","password": "blocked"}]
var btnSwitch = document.getElementById('switch');
btnSwitch.onclick = SwitchClicked;
function SwitchClicked(){
//Remove user from aBlocked
var removedUser = RemoveUserByEmail(aBlocked, "test2@2.com");
//Add the removed user to arrayAdmins
if(removedUser != null){
arrayAdmins.push(removedUser);
}
}
//Will remove the first user found with this email and returns it
function RemoveUserByEmail(arrayOfUsers, email){
for(var i=0; i<arrayOfUsers.length; i++){
if(arrayOfUsers[i].email === email){
var removedUsers = arrayOfUsers.splice(i, 1);
if(removedUsers.length > 0) return removedUsers[0];
}
}
return null;
}
var arrayAdmins=[{“firstName”:“Admin”,“lastName”:“User”,“email”:test@1.com“,”密码“:”admin“}];
var aBlocked=[{“firstName”:“Blocked”,“lastName”:“User”,“email”:”test2@2.com“,“密码”:“已阻止”}]
var btnSwitch=document.getElementById('switch');
btnSwitch.onclick=SwitchClicked;
函数SwitchClicked(){
//从锁定状态中删除用户
var removedUser=RemoveUserByEmail(已锁定)test2@2.com");
//将删除的用户添加到arrayAdmins
如果(removedUser!=null){
arrayAdmins.push(removedUser);
}
}
//将删除使用此电子邮件找到的第一个用户并将其返回
函数RemoveUserByEmail(ArrayFuser,电子邮件){
对于(VARI=0;I0)返回removedUsers[0];
}
}
返回null;
}
很抱歉,我有点困惑,我正在编辑它,其他人已经修复了它,谢谢你让我知道。在切换过程中使用另一个变量作为占位符如果我有两个用户,我只想移动其中一个,但不想一次移动所有用户怎么办?我猜arrayAdmins.push(取消锁定)将移动阵列中的所有内容。唯一让我担心的是那些密码有多不安全,而这些密码只用于提问目的:)
var arrayAdmins = [{"firstName": "Admin", "lastName": "User", "email": "test@1.com","password": "admin"}];
var aBlocked = [{"firstName": "Blocked", "lastName": "User", "email": "test2@2.com","password": "blocked"}]
var btnSwitch = document.getElementById('switch');
btnSwitch.onclick = SwitchClicked;
function SwitchClicked(){
//Remove user from aBlocked
var removedUser = RemoveUserByEmail(aBlocked, "test2@2.com");
//Add the removed user to arrayAdmins
if(removedUser != null){
arrayAdmins.push(removedUser);
}
}
//Will remove the first user found with this email and returns it
function RemoveUserByEmail(arrayOfUsers, email){
for(var i=0; i<arrayOfUsers.length; i++){
if(arrayOfUsers[i].email === email){
var removedUsers = arrayOfUsers.splice(i, 1);
if(removedUsers.length > 0) return removedUsers[0];
}
}
return null;
}