将数组键保留在JavaScript中

时间:2018-10-15 07:04:24

标签: javascript

在前端部分使用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中执行此类操作吗?

3 个答案:

答案 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']);