Javascript - 与for循环中的变量“连接”

时间:2012-10-10 15:00:49

标签: javascript variables loops for-loop concatenation

我不太确定我在标题中使用的热量,但是我们走了。

所以我有类似的东西:

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键,但我没想到我该怎么做,我尝试了很多东西,但我每次都失败了,是的我很糟糕,我应该心疼。

我试过了:

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;

btw Key var包含PS_1然后PS_2然后是PS_3 ......

3 个答案:

答案 0 :(得分:2)

var GivenName = theObject[key].FirstName;

答案 1 :(得分:1)

for (var key in myObject) {
    var value = myObject[key];
}

http://eloquentjavascript.net

答案 2 :(得分:1)

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

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

  

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

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);