如何打印保存与用户输入的数据相对应的数据的数组?

时间:2019-03-22 00:33:21

标签: javascript html arrays object for-loop

我正在尝试显示与用户请求相对应的阵列*在这种情况下,这将是显示具有相应品牌的所有汽车阵列并进行打印。 (共有11个汽车阵列,分别命名为car1,car2等。

这是我的代码块:

var car1 = new Car("Toyota", "Camry", "Gold", "2006", "RT14-W32", true);
var car2 = new Car("Hyundai", "Elantra", "Silver", "2012", "CRTW-34S", (false);
var car3 = new Car("Honda", "Civic", "Grey", "2010", "SASY-232", false);
var car4 = new Car("Toyota", "Corolla", "Blue", "2009", "BARF-343", (true);
var car5 = new Car("Tesla", "Model S", "Black", "2019", "COOL-CAR", true);
var car6 = new Car("Mercedes", "B-Class", "Black", "2018", "RICH-999", true);
var car7 = new Car("Toyota", "Rav4","Red", "2014", "DART-565", false);
var car8 = new Car("Hyundai", "SantaFe", "Silver", "2016", "WDYO-227", false);
var car9 = new Car("Hyundai", "Accent", "White", "2014", "QRT-411", true);
var car10 = new Car("Honda", "Accord","Red", "2017", "VTTY-233", false);

console.log(car4);


    function filterByMake()
    { 
        var inputFilter = document.getElementById("tbFilter").value;

        for( x = 0; x < 11; x++)
    {       
            if (car[x].inputFilter == car[x].make)
            {
            document.getElementById("Output").innerHTML += car[x].year + " " + car[x].color + " " + car[x].make + " " + car[x].model +" " + " " + car[x].license + "<br/> Car available for sale? " + car[x].forSale;
            }
    }

}

控制台说未定义汽车,我应该串联计数器和数组吗?不确定if语句中该如何工作

有什么想法? 任何提示或更正,不胜感激

1 个答案:

答案 0 :(得分:0)

可能您是说window['car' + x]太疯狂了!

您应按以下步骤创建对象数组:

var cars = [new Car("Toyota", "Camry", "Gold", "2006", "RT14-W32", true),
  new Car("Hyundai", "Elantra", "Silver", "2012", "CRTW-34S", (false),
  new Car("Honda", "Civic", "Grey", "2010", "SASY-232", false),
  new Car("Toyota", "Corolla", "Blue", "2009", "BARF-343", (true),
  new Car("Tesla", "Model S", "Black", "2019", "COOL-CAR", true),
  new Car("Mercedes", "B-Class", "Black", "2018", "RICH-999", true),
  new Car("Toyota", "Rav4", "Red", "2014", "DART-565", false),
  new Car("Hyundai", "SantaFe", "Silver", "2016", "WDYO-227", false),
  new Car("Hyundai", "Accent", "White", "2014", "QRT-411", true),
  new Car("Honda", "Accord", "Red", "2017", "VTTY-233", false)
];

console.log(car4);

function filterByMake() {
  var inputFilter = document.getElementById("tbFilter").value;

  for (x = 0; x < cars.length; x++) {
  if (inputFilter === cars[x].make) {
    document.getElementById("Output").innerHTML += cars[x].year + " " + cars[x].color + " " + cars[x].make + " " + cars[x].model + " " + " " + cars[x].license + "<br/> Car available for sale? " + cars[x].forSale;
  }
}

您的方法是找到汽车,因此可以使用功能find

var cars = [new Car("Toyota", "Camry", "Gold", "2006", "RT14-W32", true),
    new Car("Hyundai", "Elantra", "Silver", "2012", "CRTW-34S", (false),
    new Car("Honda", "Civic", "Grey", "2010", "SASY-232", false),
    new Car("Toyota", "Corolla", "Blue", "2009", "BARF-343", (true),
    new Car("Tesla", "Model S", "Black", "2019", "COOL-CAR", true),
    new Car("Mercedes", "B-Class", "Black", "2018", "RICH-999", true),
    new Car("Toyota", "Rav4", "Red", "2014", "DART-565", false),
    new Car("Hyundai", "SantaFe", "Silver", "2016", "WDYO-227", false),
    new Car("Hyundai", "Accent", "White", "2014", "QRT-411", true),
    new Car("Honda", "Accord", "Red", "2017", "VTTY-233", false)
];

console.log(car4);

function filterByMake() {
  var inputFilter = document.getElementById("tbFilter").value;
  var found cars.find(function(c) {
    return inputFilter === c.make;
  });
  if (found) {
      document.getElementById("Output").innerHTML += cars[x].year + " " + cars[x].color + " " + cars[x].make + " " + cars[x].model + " " + " " + cars[x].license + "<br/> Car available for sale? " + cars[x].forSale;
  }
}