首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaScript中保留数组键

在JavaScript中保留数组键
EN

Stack Overflow用户
提问于 2018-10-15 15:04:24
回答 3查看 82关注 0票数 1

在前端用mongodb数据库中的_ids制作数组是可行的方案吗?假设我需要维护具有ids的人员的状态。把这样的事情联系起来是不是很好:

代码语言:javascript
复制
let arr=[];
arr['5bbaea8847910db52c7c3682']='p';
arr['5b9f6a1fd85effbb8acbd1fe']='a';
console.log(arr['5b9f6a1fd85effbb8acbd1fe']);

或者更好的做法是这样:

代码语言:javascript
复制
 let arr=[];
 arr.push({
     _id:5bbaea8847910db52c7c3682,
     status:'p'
});

我担心这么大的if可能会导致内存问题或诸如此类的事情。我以前是一名C++程序员,所以这似乎不是一件很酷的事情。在JavaScript中可以做这样的事情吗?

EN

回答 3

Stack Overflow用户

发布于 2018-10-15 15:16:23

如上所述,你可以使用object的object:

代码语言:javascript
复制
let data = {};
data[5bbaea8847910db52c7c3682] = {
   status: 'p'
}

或地图:

代码语言:javascript
复制
let data = new Map();
data.set(5bbaea8847910db52c7c3682, { status: 'p' });
票数 1
EN

Stack Overflow用户

发布于 2018-10-15 15:22:06

最好将arr作为对象,而不是数组。下面是创建新对象以及添加/编辑其属性的示例。

代码语言:javascript
复制
let obj = {} // or obj = new Object()
obj['5bbaea8847910db52c7c3682'] = 'p'
obj['5b9f6a1fd85effbb8acbd1fe'] = 'a'
console.log(obj)

要删除某些属性,只需使用delete关键字:

代码语言:javascript
复制
let obj = {}
obj['5bbaea8847910db52c7c3682'] = 'p'
delete obj['5bbaea8847910db52c7c3682']
console.log(obj)

如果属性名是保留关键字,或者包含空格或特殊字符,则设置/获取属性值的方法与数组上的set/get相同。除此之外,还可以使用点符号。

代码语言:javascript
复制
let obj = {}

obj.someProperty = 'old value'
obj['someProperty'] = 'new value'

console.log(obj.someProperty) // 'new value'
console.log(obj['someProperty']) // 'new value'
票数 0
EN

Stack Overflow用户

发布于 2018-10-15 15:31:15

在这种情况下,最好使用对象数组(如您所建议的),或者简单地使用普通对象:

代码语言:javascript
复制
let ob = {};
ob['5bbaea8847910db52c7c3682'] = 'p';
ob['5b9f6a1fd85effbb8acbd1fe'] = 'a';

console.log(ob['5b9f6a1fd85effbb8acbd1fe']);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52811351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档