2016-09-01 13 views
1

myFunction()を使用してオブジェクトの配列を実行しようとしていますが、機能しません。私は何が欠けているのですか?私は配列従業員のすべてのオブジェクトを表示したい。なぜこのjavascriptコードは実行されていませんか?

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<div id="id01"></div> 
 
<div id="id02"></div> 
 
<script> 
 
myFunction({ 
 

 
"employees":[ 
 
    {"firstName":"John","lastName":"Doe" }, 
 
    {"firstName":"Anna","lastName":"Smith" }, 
 
    {"firstName":"Peter","lastName":"Jones" } 
 
      ] 
 

 
}); 
 

 
function myFunction(employees) { 
 
     var out = ""; 
 
     var i; 
 
     for(i = 0; i<employees.length; i++) { 
 
      out += '<a href="' + employees[i].firstName + '">' + 
 
      employees[i].lastName + '</a><br>'; 
 
     } 
 
     document.getElementById("id01").innerHTML = out; 
 
    } 
 
    
 

 
</script> 
 

 
</body> 
 
</html>

+4

'employees'はオブジェクトではない配列です。配列は 'employees.employees'にあります。 – Barmar

+0

'{...}'と 'employee:'プロパティは表示されませんか?これは基本的なJavaScript構文です。 – Barmar

+0

はい私は今見ることができます。なぜこのコードは動作しないのですか? –

答えて

0

あなたは、単に関数にarrayを渡す必要があります。あなたはemployess

<script> 
myFunction([ 
    {"firstName":"John","lastName":"Doe" }, 
    {"firstName":"Anna","lastName":"Smith" }, 
    {"firstName":"Peter","lastName":"Jones" } 
      ] 

); 

function myFunction(employees) { 
     var out = ""; 
     var i; 
     for(i = 0; i<employees.length; i++) { 
      out += '<a href="' + employees[i].firstName + '">' + 
      employees[i].lastName + '</a><br>'; 
     } 
     document.getElementById("id01").innerHTML = out; 
    } 


</script> 

objectを渡しているか、従業員のobjectを渡したい場合は、あなたがやりたいemployees.employees

myFunction({ 

     "employees": [ 
      { "firstName": "John", "lastName": "Doe" }, 
      { "firstName": "Anna", "lastName": "Smith" }, 
      { "firstName": "Peter", "lastName": "Jones" } 
     ] 

    }); 

    function myFunction(employees) { 
     var out = ""; 
     var i; 
     for (i = 0; i < employees.employees.length; i++) { 
      out += '<a href="' + employees.employees[i].firstName + '">' + 
      employees.employees[i].lastName + '</a><br>'; 
     } 

     document.getElementById("id01").innerHTML = out; 
    } 
0

良い方法のようにアクセスすることができます。

myfunction([ 
     {"firstName":"John","lastName":"Doe" }, 
     {"firstName":"Anna","lastName":"Smith" }, 
     {"firstName":"Peter","lastName":"Jones" } 
       ]); 
    function myFunction(employees) { 
      var out = ""; 
      var i; 
      for(i = 0; i<employees.length; i++) { 
       out += '<a href="' + employees[i].firstName + '">' + 
       employees[i].lastName + '</a><br>'; 
      } 
      document.getElementById("id01").innerHTML = out; 
    } 
0

あなたのためにコードスニペットを作成しました。

主な問題は、関数内にオブジェクトを1つも入力しなかったことです。また、あなたのコードをリファクタリングしました。

var employees = [ {"firstName":"John","lastName":"Doe" }, {"firstName":"Anna","lastName":"Smith" }, {"firstName":"Peter","lastName":"Jones"} ]; 
 

 
myFunction(employees); 
 

 
function myFunction(employees) { 
 
    var out = ""; 
 
    for(var i = 0; i < employees.length; i++) { 
 
    out += '<a href="' + employees[i].firstName + '">' + employees[i].lastName + '</a><br>'; 
 
    } 
 
    document.getElementById("id01").innerHTML = out; 
 
}
<div id="id01"></div> 
 
<div id="id02"></div>

Sincerlyイメージ

関連する問題