在前端用mongodb数据库中的_ids制作数组是可行的方案吗?假设我需要维护具有ids的人员的状态。把这样的事情联系起来是不是很好:
let arr=[];
arr['5bbaea8847910db52c7c3682']='p';
arr['5b9f6a1fd85effbb8acbd1fe']='a';
console.log(arr['5b9f6a1fd85effbb8acbd1fe']);或者更好的做法是这样:
let arr=[];
arr.push({
_id:5bbaea8847910db52c7c3682,
status:'p'
});我担心这么大的if可能会导致内存问题或诸如此类的事情。我以前是一名C++程序员,所以这似乎不是一件很酷的事情。在JavaScript中可以做这样的事情吗?
发布于 2018-10-15 15:16:23
如上所述,你可以使用object的object:
let data = {};
data[5bbaea8847910db52c7c3682] = {
status: 'p'
}或地图:
let data = new Map();
data.set(5bbaea8847910db52c7c3682, { status: 'p' });发布于 2018-10-15 15:22:06
最好将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相同。除此之外,还可以使用点符号。
let obj = {}
obj.someProperty = 'old value'
obj['someProperty'] = 'new value'
console.log(obj.someProperty) // 'new value'
console.log(obj['someProperty']) // 'new value'发布于 2018-10-15 15:31:15
在这种情况下,最好使用对象数组(如您所建议的),或者简单地使用普通对象:
let ob = {};
ob['5bbaea8847910db52c7c3682'] = 'p';
ob['5b9f6a1fd85effbb8acbd1fe'] = 'a';
console.log(ob['5b9f6a1fd85effbb8acbd1fe']);https://stackoverflow.com/questions/52811351
复制相似问题