2017-06-23 4 views
-4

オブジェクトのプロトタイプから見つけることができる関数を作ることは可能ですか? オブジェクトのプロトタイプの値「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

普通のオブジェクトにプロパティを定義し、そのオブジェクトに直接アクセスすると、話すプロトタイプはありません。年齢: 'rex.Age':' rex.te.to' –

+0

@ E.Sundinいいえ、それは直接呼び出しを使う必要はありません。私がスクリプトにしたいのは、オブジェクト内の値を見つけることです... –

答えて

1

あなたが表示しているものは、オブジェクトのプロトタイプではありません。それらは単なるオブジェクト値です。プロトタイプは、本質的にオブジェクト上に既に存在するデフォルト関数です。

オブジェクトの値が16であるかどうかを調べるには、ループして各キー値ピアを確認する必要があります。他のいくつかの答えはここにもあります
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

こんにちは@monnersスクリプトは素晴らしいですが、アルゴリズムは正しくありません。あなたが共有しているスクリプトは、現在適切な値を出力していません... –

+0

値を求めたい場合は、 'return key'を' return obj [key ] ' – monners

+0

あなたはObject.valuesを使用して、結果の配列に... Object.values({a:1、b:2、c:5}).include(5)=== true'を含めることができます – rlemon

関連する問題