Является ли это возможным решением сохранить массивы с _ids из базы данных mongodb в интерфейсной части? Предположим, что мне нужно поддерживать статус людей с их идентификаторами. Хорошо ли ассоциировать такие вещи:
let arr=[];
arr['5bbaea8847910db52c7c3682']='p';
arr['5b9f6a1fd85effbb8acbd1fe']='a';
console.log(arr['5b9f6a1fd85effbb8acbd1fe']);
или лучше держать такие вещи:
let arr=[];
arr.push({
_id:5bbaea8847910db52c7c3682,
status:'p'
});
Я боюсь, если такие большие идентификаторы могут привести к проблемам с памятью или к таким вещам. Раньше я был C++ программистом, поэтому, похоже, это не крутая вещь. Можно ли делать такие вещи в JavaScript?
Как сказано выше, u может использовать объект объектов:
let data = {};
data[5bbaea8847910db52c7c3682] = {
status: 'p'
}
Или карта:
let data = new Map();
data.set(5bbaea8847910db52c7c3682, { status: 'p' });
В этой ситуации лучше использовать массив объектов (как вы сказали) или просто обычный объект:
let ob = {};
ob['5bbaea8847910db52c7c3682'] = 'p';
ob['5b9f6a1fd85effbb8acbd1fe'] = 'a';
console.log(ob['5b9f6a1fd85effbb8acbd1fe']);
Лучше сделать arr
как объект вместо массива. Ниже приведен пример создания нового объекта, а также добавление/редактирование его свойства.
let obj = {} // or obj = new Object()
obj['5bbaea8847910db52c7c3682'] = 'p'
obj['5b9f6a1fd85effbb8acbd1fe'] = 'a'
console.log(obj)
Чтобы удалить определенное свойство, просто используйте ключевое слово delete
:
let obj = {}
obj['5bbaea8847910db52c7c3682'] = 'p'
delete obj['5bbaea8847910db52c7c3682']
console.log(obj)
если имя свойства является зарезервированным ключевым словом или содержит пробелы или специальные символы, то способ установить/получить значение свойства так же, как set/get on array. Кроме этого, можно использовать точечную нотацию.
let obj = {}
obj.someProperty = 'old value'
obj['someProperty'] = 'new value'
console.log(obj.someProperty) // 'new value'
console.log(obj['someProperty']) // 'new value'