2016-04-25 3 views
0

Я использую Socket.io и я хочу, чтобы создать функцию склеить эту форму массива:сращивания сложный multidimentionnal массив в JavaScript

  • Существует массив строки
  • Каждая строка этот массив ссылается на другой массив, так что два dimensionnal массива
  • Каждая строка этого второго Dimention может иметь 0 или несколько объектов сокет

в моем случае, у меня есть это:

Пользователей [user_uid] [гнездо], где гнездо является объект, который имеет свойство «UID»

я должен создать функцию, которые должным образом удалить сокет массива, используя UID свойства. Если для конкретного пользователя нет другого сокета, я должен удалить пользователя.

Я знаю, что я должен использовать свойство сплайсинга, но я действительно не понимаю, как я могу начать

EDIT

Exemple данных:

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); 
} 
Смежные вопросы