Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击将数组项移动到另一个数组_Javascript_Arrays_Function_Addeventlistener - Fatal编程技术网

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;
}