2017-06-23 51 views
-4

是否可以创建可从对象的原型中找到的函数? 如何找到Object的原型上的值“5”以及什么是正确的算法?如何从原型中查找对象值

var rex = { 
 
"Name": "rex", 
 
"Age": 16, 
 
} 
 
te = { 
 
"to": 5, 
 
} 
 

 
rex.te = Object.create(te); 
 

 
function find(a,b){ 
 
\t console.log(rex.te.to); 
 
} 
 
find(5,rex); 
 
console.log(rex);

你如何找到对象的原型值 “5”?

+0

你如何找到它?基本对象引用? – epascarello

+0

如果您已经定义了一个普通对象中的属性并直接访问该对象,那么就没有可用的原型。 Age:'rex.Age',to:'rex.te.to' –

+0

@ E.Sundin no,它不需要使用直接调用。脚本要做的就是找到对象内部的值... –

回答

1

你所展示的不是对象的原型。它们只是对象的价值。原型本质上是对象上已经存在的默认函数。

如果要查找对象是否具有16的值,则需要遍历它并检查每个键值peer。也有一些其他的答案在这里:
How to check if value exists in object using javascript

+0

你好,我更新了代码..谢谢你指出了..只是增加了正确的语法..你可以再次检查代码? –

+0

您所做的编辑并没有任何意义。你正在创建一个名为find的函数,并希望它为你找到这些值?你还在另一个对象上创建一个对象? 您需要回头澄清您对javascript的理解,因为我认为阅读文档会让您感到困惑。 访问codeacademy.com。这是让你的头脑变得语言化并使其学习变得非常简单的一个很好的起点。 – hdifen

0
function findVal (val, obj) { 
    for (let key in obj) { 
     if (obj[key] === val) { 
      return key; // Assuming you want the key, not the value 
     } 
    } 

    return null; // If value doesn't exist on the object, return null 
} 
+0

Hello @monners脚本很好,但算法不太正确..你共享的脚本目前不能输出正确的值... –

+0

如果你想要的值,只要将'return key'改为'return obj [key ]' – monners

+0

你可以使用Object.values并在结果数组上包含...'Object.values({a:1,b:2,c:5})。includes(5)=== true' – rlemon