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

时间:2014-01-16 06:10:59

标签: javascript

每次调用脚本时我都会得到用户名,并将其存储在名为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(i.name1.name);
}

这是我正在努力的小提琴,但我遇到了一些问题。 Demo

2 个答案:

答案 0 :(得分:2)

使用

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

DEMO

答案 1 :(得分:2)

循环应该是:

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

使用for-in时,变量将设置为属性名称。要使用动态属性名称,必须使用括号语法;点语法仅适用于文字属性。

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

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