2017-04-22 28 views
0

我在做JavaScript问题,这里有一个问题,我得到了1/2答案的权利。我不知道如何在给定键没有属性的情况下返回undefined。这是问题和我的代码。如何在给定键没有属性的情况下返回undefined?

“给定一个对象的关键,‘的getProperty’在给定的键返回属性的值

注: *如果在给定的键的属性,它应该返回不确定的。”

function getProperty(obj, key) { 
    for (var x in obj) { 
    return obj[x]; 
    } 
} 
+2

循环是,你从最初的迭代返回无用的付出。 –

+2

'function getProperty(obj,key){return obj [key]; }'将返回值或'undefined'。 –

回答

4

可以使用hasOwnProperty功能,例如:

function getProperty(obj, key){ 
 
    return obj.hasOwnProperty(key) ?obj[key] : undefined; 
 
} 
 

 
// Examples 
 
console.log(getProperty({a: 1, b: 2}, "a")); 
 
console.log(getProperty({a: 1, b: 2}, "c"));

更新你可以更简单的方式

function getProperty(obj, key){ 
 
     return obj[key]; 
 
} 
 

 
// Examples 
 
console.log(getProperty({a: 1, b: 2}, "a")); 
 
console.log(getProperty({a: 1, b: 2}, "c"));

+0

两者都可以。虽然我更喜欢第一个,因为它不会看到原型链。 –

+0

我认为只有第二个是有效的。它不说只返回自己的财产,它说财产。 –

1

你不需要这个功能。直接调用它:

obj[key]; // Return value or 'undefined' if not found. 

此外,你的功能是无用的。它只返回OBJ

发现如果你真的想要一个函数的第一个值,只是这会做

function getProperty(obj, key) { 
    return obj[key]; 
} 
相关问题