2014-09-25 40 views
1

我有兩種陣列會在其上的移動數組項到另一個陣列上點擊

var arrayAdmins = [{"firstName": "Admin", "lastName": "User", "email": "[email protected]","password": "admin"}]; 
var aBlocked = [{"firstName": "Blocked", "lastName": "User", "email": "[email protected]","password": "blocked"}] 

爲了保持簡單說明此問題,我有一個按鈕:

<input type="button"id="switch"> 

然後我做一個變量爲目標的按鈕:

var arraySwitch = document.getElementById('switch'); 

我想要做的是單擊按鈕時從陣列的用戶名爲aBlocked轉換爲arrayAdmins。所以我希望從某個管理面板中,管理員可以將用戶從被阻止的狀態中移除爲管理員。

+0

這不是JSON。 – Biffen 2014-09-25 19:55:59

+0

對不起,我有點困惑,我正在編輯它,它已被其他人修復,謝謝你讓我知道。 – SmalliSax 2014-09-25 19:57:49

+0

在交換機中使用另一個變量作爲佔位符 – Petro 2014-09-25 19:58:08

回答

1

你的用戶應該有一個「id」這樣你就可以在識別它們的數組,我想你的情況下,電子郵件是唯一的

var arrayAdmins = [{"firstName": "Admin", "lastName": "User", "email": "[email protected]","password": "admin"}]; 
var aBlocked = [{"firstName": "Blocked", "lastName": "User", "email": "[email protected]","password": "blocked"}] 

var btnSwitch = document.getElementById('switch'); 
btnSwitch.onclick = SwitchClicked; 

function SwitchClicked(){ 
    //Remove user from aBlocked 
    var removedUser = RemoveUserByEmail(aBlocked, "[email protected]"); 

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

那麼,你需要有一種方法來定位你想要在你的用戶界面中移動的用戶。

然後,它只是將用戶從一個數組中移除並將其附加到另一個數組中。對於爲例,如果你想刪除的aBlocked第二用戶(如果有的話),並把它添加到arrayAdmins你可以這樣做:

var unblockedUser = aBlocked.splice(1, 1)[0]; 
arrayAdmins.push(unblockedUser); 
相關問題