Javascript,将字符串转换为对象属性

时间:2014-08-01 09:45:57

标签: javascript object attributes

我想知道是否有可能有一个具有某些属性的对象,例如:

对象名称:人

this.age = 8
this.name = "Steve"

然后有一个字符串数组,其中包含该对象的每个属性,例如:

manAttributes = ["age","name"]

因此,如果我写了

console.log(Human.manAttributes[0])

控制台应记录' 8 '但这不起作用,我得到了意想不到的字符串。

由于

5 个答案:

答案 0 :(得分:1)

对象是键:值对。键和值由(冒号)分隔。在您的情况下,您已用 = 分隔。更改您的代码如下:

 var Human = {
     manAttributes: ["age","name"],
     age: 8
 };
 alert(Human[Human.manAttributes[0]]);  //alerts 8

此解决方案将manAttributes视为Human对象的属性。如果manAttributes是Human对象之外的单独数组,那么,

 var manAttributes = ["age","name"];
 var Human = {
     age: 8
 };
 alert(Human[manAttributes[0]]);  //alerts 8

答案 1 :(得分:0)

如果你正在寻找迭代属性, 我建议采用以下方法。

var human = {      
  name: "Smith",
  age: "29"      
};

var manAttributes = ["age","name"];

for(var prop in manAttributes){
  if(human.hasOwnProperty(manAttributes[prop])){
    console.log(human[manAttributes[prop]]);
  }  
} 

DEMO

答案 2 :(得分:0)

可以通过点表示法或括号表示法访问对象属性(请参阅Mozilla's JavaScript reference)。

所以,这将输出你想要的东西:

console.log(Human[manAttributes[0]]);

答案 3 :(得分:0)

你需要:

Human[manAttributes[0]]

[]语法是通过(变量)名称而不是常量文字标记访问属性的方式。

答案 4 :(得分:0)

function Human(age,name) {
  this.age = age;
  this.name = name;
}
var self = new Human(8,'Steve');

var humanProperties = Object.getOwnPropertyNames(self);

console.log(self[humanProperties[0]])