2

我不太确定我在标题中使用的 therm,但我们开始吧。

所以我有这样的事情:

for (var key in myObject) {

var GivenName = theObject.PS_1.GivenName;
var GivenName = theObject.PS_2.GivenName;
var GivenName = theObject.PS_3.GivenName;
var GivenName = theObject.PS_4.GivenName;
// and so on...

}

所以很明显我不想写那样的东西,我需要使用 var Key,但我不知道我应该怎么做,我尝试了一些事情,但我每次都失败了,是的我我很糟糕,我应该感觉很糟糕。

我试过这个:

var GivenName = 'theObject.'+key+'.FirstName';
var GivenName = theObject.key.FirstName;
var GivenName = theObject.[key].FirstName;
var GivenName = theObject.['key'].FirstName;
var GivenName = theObject.[+key+].FirstName;

顺便说一句,密钥变量包含 PS_1 然后 PS_2 然后 PS_3 ...

4

3 回答 3

2
var GivenName = theObject[key].FirstName;
于 2012-10-10T15:02:20.093 回答
1
for (var key in myObject) {
    var value = myObject[key];
}

http://eloquentjavascript.net

于 2012-10-10T15:02:09.557 回答
1

如果您还没有机会阅读它,那么 mozilla javascript 文档绝对很棒。 https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Working_with_Objects

即使您熟悉其中的大部分内容,它仍然会提供出色的参考信息。从文档:

对象属性名称可以是有效的 JavaScript 字符串,也可以是可以转换为字符串的任何内容,包括空字符串。但是,任何不是有效 JavaScript 标识符的属性名称(例如,具有空格或破折号或以数字开头的属性名称)只能使用方括号表示法访问。当要动态确定属性名称时(当直到运行时才确定属性名称时),此表示法也非常有用。示例如下:

var myObj = new Object(),
    str = "myString",
    rand = Math.random(),
    obj = new Object();

myObj.type              = "Dot syntax";
myObj["date created"]   = "String with space";
myObj[str]              = "String value";
myObj[rand]             = "Random Number";
myObj[obj]              = "Object";
myObj[""]               = "Even an empty string";

console.log(myObj);
于 2012-10-10T15:06:36.553 回答