2017-11-05 10 views
0

私はこのオブジェクトの配列をトラバースしており、現在のインデックスの人が他の誰の+/- 10年以内の年齢を持つ場合に一致を表示したいアレイ。しかし、私はそれを実行すると、 "未定義のプロパティ '年齢'を読み取ることはできません。どこで私は間違えましたか?JavaScript - 動作しないオブジェクトの配列からの印刷

function findmatches() {  
    var n = USERS.length; 

    for (var i = 0; i < n; i++) { 
    var currName = USERS[i].firstName; 
    var currAge = USERS[i].age; 
    var currGender = USERS[i].gender; 

    for (var c = 0; c < 10; c++) { 
     if (((USERS[c].age) + 10) <= currAge) { 
     document.getElementById("showmatches").innerHTML += currName + " matched to >> " + USERS[i].firstName + " " + USERS[i].lastName + " \n"; 
     break; 
     } 
    }  
    } 
} 
+0

"findmatches"関数内の最初のfor-loopはありますか? – bcho04

+0

あなたの 'USERS'配列を共有してください。 'Undefinedの年齢 'プロパティを読み取ることができないというエラーの理由は、ユーザーオブジェクトの' age'プロパティがないことです。 –

+0

オブジェクトの配列を共有できますか? – brk

答えて

0

2番目のforループは正確に何をする予定ですか?

投稿したコードでは、USERS配列の最初の10人のユーザーが繰り返します。私はそれよりもユーザーが少ないと思うので、USERS[c]undefinedで、USERS[c].ageにアクセスしようとしています。

+0

に年齢が定義されています...解決策は '10'を' n'に置き換えますか? – nnnnnn

+0

はい、できます。 –

+0

また、配列を操作するための便利なメソッドがたくさんあります。たとえば、 'for'ループのもの全体を' array.forEach() 'メソッドの使用法に置き換えることができます。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array –

関連する問題