2017-06-23 11 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