JavaScript -结构数组

JavaScript - Struct Arrays

本文关键字:数组 结构 JavaScript      更新时间:2023-09-26

我正在处理下面的JS,加载时它不会显示输出。

<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....谢谢教授. .

感谢大家的支持。

约翰

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);
});

将length()作为函数更改为cars.length

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

您也可以使用map()方法。

的例子:

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);