繁体   English   中英

如何在JavaScript中将对象的属性获取为变量?

[英]How to get property of an object to a variable in Javascript?

向Codecademy学习。 我必须将对象的属性获取为变量(而不是属性值)。 一个小时后,这使我的脑子一团糟。

这是代码(我弄乱了一点以找到解决方案。请使用注释正确理解它。我很困惑地问)SCREENSHOT: http : //prntscr.com/bcj94x

var james = {
job: "programmer",
married: false
};

// set to the first property name of "james"
var aProperty = james["job"];

// print the value of the first property of "james" 
// using the variable "aProperty"
console.log(james["job"]);
console.log(aProperty);

我得到:运行脚本时在控制台中

programmer 
programmer 

谢谢

您期待什么结果?

使用Javascript Object Notation(简称JSON )定义对象会导致一个对象具有两个属性jobmarried

通过变量james引用此对象。 每次在代码中使用james时,都在处理引用的对象。

var aProperty = james["job"]; 每次使用变量aProperty时,它都引用使用james引用的对象的job属性。

这就像说:»从现在开始,当我说“ aProperty”时,我的意思是james «的工作性质。

您的评论有点误导性:

//设置为“詹姆斯”的第一个属性名称

在这种情况下, job第一个属性。 将正确set to the property named job


根据以上所述,结果应该不会意外。

console.log(james["job"]);
console.log(aProperty);

因为aProperty等同于james["job"]所以aProperty都是打印programmer ,就像说Thomasthe person who wrote thisme

如果要获取与给定值关联的键,可以执行以下操作:

var james = {
  job: "programmer",
  married: false
};

Object.prototype.getKey = function (value){
  for(var property in this){
     if(this.hasOwnProperty(property)) {
          if(this[property] === value )
              return property;
          }
     }
};

console.log(james.getKey('programmer'));

它会给你“工作”。

因此,使用此功能,您可以简单地编写:

 var aProperty = james.getKey('programmer');

您可以使用for in循环放key的值key : value詹姆斯发现对所谓aProperty内部数组对象,然后在控制台打印出结果。

var james = {
job: "programmer",
married: false
};


var aProperty = [];
for (myvar in obj) {
 if (obj.hasOwnProperty(myvar)) {
   aProperty.push(myvar);
 }
}

console.log(aProperty[0]);
console.log(aProperty[1]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM