2016-04-25 103 views
0

我使用socket.io複雜multidimentionnal陣列,我想創建一個函數來拼接這種形式排列的:拼接在JavaScript

  • 有一個字符串
  • 的每一行的數組這個陣列被引用到另一陣列,於是兩個dimensionnal陣列
  • 該第二漁政的每一行可以具有0或多個對象插座

在我的情況,我有這樣的:

用戶[user_uid] [插座],其中插座是一個對象誰具有屬性「UID」

我不得不創建函數誰使用UID屬性適當地除去陣列的插座如果沒有針對特定用戶的另一個套接字,那麼我必須刪除該用戶。

我知道,我必須使用拼接屬性,但我真的不知道怎樣才能啓動

編輯

爲例的數據:

Users["user_1"] [0]{ID: 1, username: nameOfuser_1} 
Users["user_1"] [1]{ID: 2, username: nameOfuser_1} 
Users["user_1"] [2]{ID: 3, username: nameOfuser_1} 
Users["user_2"] [0]{ID: 4, username: nameOfuser_2} 
Users["user_3"] [0]{ID: 5, username: nameOfuser_3} 
Users["user_3"] [1]{ID: 6, username: nameOfuser_3} 

要刪除通過ID對象。如果我們刪除ID爲4的對象,則必須刪除user_2。

很明顯,一切都被簡化,以儘可能簡單地反映我的約束。

+0

如果我理解你正確,你可以對包含套接字的數組執行'for'循環。如果你發現一個帶有匹配UID的套接字,請執行「splice(i,1)」和「break」。你能否在你的問題中包含一些示例數據,以便每個人都能看到它的實際結構? –

+0

是的,我編輯過 –

回答

0
for(var current in Users[uid]){ 
    if(current.id == object.id){ 
     current.splice(Users.indexOf(current), 1); 
     break; 
    } 
} 

if(Users[uid].length == 0){ 
    Users.splice(Users.indexOf(uid),1); 
}