使用字符串访问数组中的对象

时间:2014-03-02 00:10:08

标签: javascript arrays object properties

我有这段代码:

    var dictionary=[
            apple={name:"apple",pos:"noun",d:"",c:["fruit"]},
            banana={name:"banana",pos:"noun",d:"",c:["fruit"]}
    ];

如何使用其名称字符串访问数组中的一个对象。以您可以访问对象的方式

     object['propertyName']

有没有办法用数组做类似的事情?我希望以类似

的方式访问它
    dictionary["apple"].pos 
    //Want to return "noun"

是否有一种简单的方法可以使用数组执行类似的操作,如果没有,是否可以使用其他方法?

1 个答案:

答案 0 :(得分:3)

您生成dictionary错误的方式;它在语法上是有效的,但它几乎肯定你打算做什么。它没有将键apple绑定到该对象。相反,它定义了一个名为apple的隐式(全局)变量,并将该对象分配给该变量,以及该数组的第一个元素。

试试这个:

var dictionary= {
    apple: {name:"apple",pos:"noun",d:"",c:["fruit"]},
    banana: {name:"banana",pos:"noun",d:"",c:["fruit"]}
};

console.log(dictionary["apple"].pos); // "noun"

// This also works:
console.log(dictionary.apple.pos);    // "noun"