Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript在对象内部创建动态对象并访问其属性_Javascript - Fatal编程技术网

Javascript在对象内部创建动态对象并访问其属性

Javascript在对象内部创建动态对象并访问其属性,javascript,Javascript,每次调用脚本时,我都会获取用户的名称,并将其存储在名为name 我有一个对象,它最初是null,我想根据我读到的名称填充它 我有这个东西 var usernames = { name1: { name: "ajey", room: 1, isStudent: true, isTeacher: false }, name2: { name: "ajey-teacher", roo

每次调用脚本时,我都会获取用户的名称,并将其存储在名为
name

我有一个对象,它最初是
null
,我想根据我读到的名称填充它

我有这个东西

var usernames = {
    name1: {
        name: "ajey",
        room: 1,
        isStudent: true,
        isTeacher: false
    },
    name2: {
        name: "ajey-teacher",
        room: 1,
        isStudent: false,
        isTeacher: true
    },
    name3: {
        name: "batman",
        room: 2,
        isStudent: true,
        isTeacher: false
    }
};
稍后,我将在usernames对象中打印所有对象及其键和值 像

这是我正在做的小提琴,但我有一些问题。 使用

for (var i in usernames) {
    console.log(usernames[i].name);
}
使用

for (var i in usernames) {
    console.log(usernames[i].name);
}
循环应为:

for (var i in usernames) {
    console.log(usernames[i].name);
}
在中为使用
时,变量将设置为属性名称。要使用动态属性名称,必须使用括号语法;点语法仅适用于文字属性

还可以使用括号语法动态创建属性:

usernames['name'+i] = {
    name: "batman",
    room: 2,
    isStudent: true,
    isTeacher: false
};
循环应为:

for (var i in usernames) {
    console.log(usernames[i].name);
}
中为使用
时,变量将设置为属性名称。要使用动态属性名称,必须使用括号语法;点语法仅适用于文字属性

还可以使用括号语法动态创建属性:

usernames['name'+i] = {
    name: "batman",
    room: 2,
    isStudent: true,
    isTeacher: false
};

知道了。如何动态创建name1、name2、name3对象等等?基于变量名添加了解释。尽管我想知道为什么要使用对象。通常情况下,当你发现自己用这样的连续数字命名时,你实际上应该使用一个数组。因此,当客户端连接到聊天室时,我将所有详细信息(如姓名、房间号、角色)存储在一个对象(即他的用户名)中,而这个对象存储在一个全局用户名对象中。因此,稍后我可以处理用户所属的房间或角色。这是一个好方法吗?好的,这是有道理的。这些名字只是例子,在现实生活中他们不会有这样的模式。明白了。如何动态创建name1、name2、name3对象等等?基于变量名添加了解释。尽管我想知道为什么要使用对象。通常情况下,当你发现自己用这样的连续数字命名时,你实际上应该使用一个数组。因此,当客户端连接到聊天室时,我将所有详细信息(如姓名、房间号、角色)存储在一个对象(即他的用户名)中,而这个对象存储在一个全局用户名对象中。因此,稍后我可以处理用户所属的房间或角色。这是一个好方法吗?好的,这是有道理的。这些名字只是例子,在现实生活中他们不会有这样的模式。明白了。如何动态创建name1、name2、name3对象等等?基于变量名,得到它。如何动态创建name1、name2、name3对象等等?基于变量名