运行此代码时不断收到'property out of scope'错误



编写一个名为"getProperty"。给定对象和密钥,"getProperty"返回给定键处的属性值。

function getProperty(objects, key) {
if (objects.includes(key) == false) {
var property;
} else {
property = objects.key;
}
return property;
}

适当的缩进可以清楚地表明,定义property的块不包括您试图使用它的任何位置。

如果存在,可以添加一个检查吗?

if(property){
return property;
}

或者使用let在if((之外声明属性。

let property = null;
if (objects.includes(key) == false) {
property;
}

这应该工作

.includes((不是检查这一点的函数。它是一个用于查找值的数组函数。您想要hasOwnProperty()objects.key也给出了对象的key性质。您应该使用计算的属性名称。

function getProperty(objects, key) {

if (objects.hasOwnProperty(key) == false) 
{ var property; 
} else { 
property = objects[key]; 
}
return property;
}
console.log(getProperty({ 'a': 2}, 'a' ));
console.log(getProperty({ 'a': 2}, 'b' ));

这应该是有效的,因为var是在顶部吊装的。即使从内部条件。您可以想象property在顶部具有值undefined。稍后,如果第一个条件为true,则不发生任何事情,并返回undefined,否则将设置并返回对象的正确属性值。

相关内容

最新更新