运行此代码时,我不断收到“属性超出范围”错误

时间:2021-07-17 16:25:32

标签: javascript

<块引用>

编写一个名为“getProperty”的函数。给定一个对象和一个键, “getProperty”返回给定键的属性值。

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

3 个答案:

答案 0 :(得分:1)

适当的缩进清楚地表明定义 property 的块不包括任何您尝试使用它的地方。

答案 1 :(得分:0)

.includes() 不是检查这个的函数。它是一个用于查找值的数组函数。你想要hasOwnProperty() 此外 objects.key 将赋予对象的 key 属性。您应该使用 computed property names

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。稍后,如果第一个条件为真,则什么都不会发生并返回 undefined,否则设置并返回对象的正确属性值。

答案 2 :(得分:0)

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

if(property){
    return property;
}

或者只是在 if() 之外声明属性,使用 let。

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

这应该有效

相关问题