在前端部分使用mongodb数据库中的_id保留make数组是否可行? 让我们假设我需要维护带有身份证的人的身份。 关联这样的事情好吗?
let arr=[];
arr['5bbaea8847910db52c7c3682']='p';
arr['5b9f6a1fd85effbb8acbd1fe']='a';
console.log(arr['5b9f6a1fd85effbb8acbd1fe']);
还是保留这样的东西更好?
let arr=[];
arr.push({
_id:5bbaea8847910db52c7c3682,
status:'p'
});
我担心这么大的ID可能导致内存问题或其他问题。我以前曾经是C ++程序员,所以这似乎不是一件很酷的事情。可以在JavaScript中执行此类操作吗?
答案 0 :(得分:1)
如上所述,您可以使用对象的对象:
let data = {};
data[5bbaea8847910db52c7c3682] = {
status: 'p'
}
或地图:
let data = new Map();
data.set(5bbaea8847910db52c7c3682, { status: 'p' });
答案 1 :(得分:0)
最好使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)
如果属性名称是保留关键字或包含空格或特殊字符,则设置/获取属性值的方式与在数组上设置/获取方式相同。除此之外,还可以使用点符号。
let obj = {}
obj.someProperty = 'old value'
obj['someProperty'] = 'new value'
console.log(obj.someProperty) // 'new value'
console.log(obj['someProperty']) // 'new value'
答案 2 :(得分:0)
在这种情况下,最好使用对象数组(如您建议的那样),或者仅使用普通对象:
let ob = {};
ob['5bbaea8847910db52c7c3682'] = 'p';
ob['5b9f6a1fd85effbb8acbd1fe'] = 'a';
console.log(ob['5b9f6a1fd85effbb8acbd1fe']);