Добавить / изменить значения в Object Javascript

У меня есть объект с именем клиенты.

var clients = {"username" : test, "socket": asdasdkje3sf};

Но я хочу добавить еще несколько клиентов. Если я добавлю клиента следующим образом:

clients = {
  "username" : username,
  "socket": socket.id
};

Он перезаписывается каждый раз, когда я добавляю новое значение. Я пробовал это так:

clients += {
  "username" : username,
  "socket": socket.id
};

Если я использую console.info(clients), кажется, что он работает, но возвращает [object][object][object][object].

Как я могу читать предметы? И это лучший подход для этого?

Заранее спасибо!

clients должен быть массивом, а не объектом
ilsotov 25.04.2018 13:46

Возможный дубликат Как что-то добавить в массив?

Mohammad Usman 25.04.2018 13:48
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
58
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

How can I read the objects? And is this the best approach to do this?

Используйте массив вместо объекта.

var clients = [{"username" : test, "socket": asdasdkje3sf}];

Вместо добавления через ++ используйте push

clients.push({
  "username" : username,
  "socket": socket.id
});

Вероятно, вам нужен массив объектов (клиентов).

var clients = [{"username" : test, "socket": asdasdkje3sf}];

Таким образом, вы можете легко подтолкнуть к нему новых клиентов.

var newClient = {"username": "another name", "socket": "foobar"};
clients.push(newClient);

push() - это массив метод, предоставляемый JavaScript.

Вам необходимо использовать структуру данных массива, в которой вы можете протолкнуть каждый объект для clients. То, как вы это делаете, неверно, поскольку он объединяет объект с другим объектом, что приводит к недопустимому объекту JSON.

var clients = [];
clients.push({
     "username" : 'username1',
     "socket": 'socket.id1'
});


clients.push({
  "username" : 'username2',
  "socket": 'socket.id2'
});

console.info(clients);

Для чтения или отображения и использования объекта,

console.info(clients.username + "|" + clients.socket)

Добавьте к приведенным выше ответам, чтобы добавить объекты в массив, вы также можете использовать concat вместо push, если вы планируете объединить более двух массивов. Разница в том, что «push» обновляет тот же массив, «contact» объединяется и возвращает новый массив.

Другие вопросы по теме