2016-10-17 13 views
0

私は下のJSで作業しており、読み込まれたときに出力を表示しません。出力のようなものでなければなりませんJavaScript - 構造体配列

<html> 
    <head> 
    </head> 

    <body> 

     <script type="text/javascript"> 

      var MAX = 3; 

      function structCars() { 
       this.make; 
       this.model; 
       this.color; 
      } 

      var cars = new Array(); 

      var makes = new Array (
       "Toyota", 
       "Ford", 
       "Chevrolet" 
       ); 

      var models = new Array (
       "Camrey", 
       "Mustang", 
       "Nova" 
       ); 

      var colors = new Array (
       "Blue", 
       "Red", 
       "Yellow" 
       ); 

      for(var i = 0; i < MAX; i++) { 
       var temp = new structCars(); 
       temp.make = makes[i]; 
       temp.model = models[i]; 
       temp.color = colors[i]; 
       cars.push(temp); 
       } 

      for(i = 0; i < cars.length(); i++) { 
       document.write(i + " " + cars[i].make + ", " + cars[i].model + ", " + cars[i].color + ".<br>"); 
       } 

     </script> 

    </body> 
</html> 

0トヨタ、カムリ、ブルー

1フォード、マスタング、赤

2シボレー、ノヴァ、イエロー

しかし、何も来ている。これは簡単なことかもしれませんが、私はこれを完全に間違ってやっています。私はJavaScriptを学び始めていて、これを理解しようと夢中になっています。

これはオンラインコーディングの割り当てのためのもので、私の仕事を私のためにしたくありません。私は教授に尋ねましたが、C#/ Javaでは堪能ではなく、JSではありません。ありがとうございます。

ありがとうございました。

ジョン括弧なし

答えて

1

Array#length作品。

for(i = 0; i < cars.length; i++) { 
//      ^^^ 

残りの部分については、値付きのコンストラクタを使用できます。機能として

function StructCars(make, model, color) { 
 
    this.make = make; 
 
    this.model = model; 
 
    this.color = color; 
 
} 
 

 
var MAX = 3, 
 
    makes = ["Toyota", "Ford", "Chevrolet"], 
 
    models = ["Camrey", "Mustang", "Nova"], 
 
    colors = ["Blue", "Red", "Yellow"], 
 
    cars = [], 
 
    i; 
 

 
for (var i = 0; i < MAX; i++) { 
 
    cars.push(new StructCars(makes[i], models[i], colors[i])); 
 
} 
 

 
cars.forEach(function (car, i) { 
 
    console.log(i + " " + car.make + ", " + car.model + ", " + car.color); 
 
});

+0

ありがとうございました!!私はかっこを削除し、それは働いた。私はまだ値のコンストラクタを使用しようとしていないが、私は、はるかに単純化されます。 – JohnP

0

変更の長さ()あなたはあまりにもmap()メソッドを使用することができます

for(i = 0; i < cars.length; i++) { 
       document.write(i + " " + cars[i].make + ", " + cars[i].model + ", " + cars[i].color + ".<br>"); 
       } 
0

をcars.lengthします。

例:

var makes = new Array (
 
    "Toyota", 
 
    "Ford", 
 
    "Chevrolet" 
 
); 
 

 
var models = new Array (
 
    "Camrey", 
 
    "Mustang", 
 
    "Nova" 
 
); 
 

 
var colors = new Array (
 
    "Blue", 
 
    "Red", 
 
    "Yellow" 
 
); 
 

 
var cars = makes.map(function(value,key){ 
 
    var car = {}; 
 
    car.make=value; 
 
    car.model=models[key]; 
 
    car.color=colors[key]; 
 
    return car; 
 
}); 
 

 
console.log(cars);