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

Javascript, turn string into object attribute

本文关键字:对象 属性 转换 字符串 Javascript      更新时间:2023-09-26

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

对象名称:Human

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

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

manAttributes = ["age","name"]

所以如果我写

console.log(Human.manAttributes[0])

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

谢谢

对象是键:值对。键和值由:(冒号)分隔。在您的例子中,用=分隔。修改代码如下:

 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

对象属性可以通过点表示法或括号表示法访问(参见Mozilla的JavaScript参考)。

那么,这将输出你想要的结果:

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

你需要:

Human[manAttributes[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]])

如果你想遍历属性,我建议采用以下方法:

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]]);
  }  
} 
演示