表中的 Javascript 输出对象有助于删除重复代码

Javascript output objects in table help to remove repeat code

本文关键字:删除 代码 有助于 对象 Javascript 输出      更新时间:2023-09-26

我想知道你是否可以帮助我,我在下面的链接中创建了一个类和对象,并且我有将其显示在表中的代码。如果我继续我的方式,它将是 99 行重复代码,我想知道是否有人知道用更少的代码做到这一点的方法。

谢谢詹姆斯http://codepen.io/anon/pen/dPOOXMhttp://jsfiddle.net/evt2pex8/

 function createTable() {
        // Create table.
        var table = document.createElement('table');
        // Apply CSS for table
        table.setAttribute('class', 'article');
        // Insert New Row for table at index '0'.
        var row1 = table.insertRow(0);
        // Insert New Column for Row1 at index '0'.
        var row1col1 = row1.insertCell(0);
        row1col1.innerHTML = hat.product;
        // Insert New Column for Row1 at index '1'.
        var row1col2 = row1.insertCell(1);
        row1col2.innerHTML = hat.description;
        // Insert New Column for Row1 at index '2'.
        var row1col3 = row1.insertCell(2);
        row1col3.innerHTML = hat.stockLevel;
        // Insert New Column for Row1 at index '3'.
        var row1col4 = row1.insertCell(3);
        row1col4.innerHTML = hat.price;

        var row2 = table.insertRow(0);
        // Insert New Column for Row2 at index '0'.
        var row2col1 = row2.insertCell(0);
        row2col1.innerHTML = beltsF.product;
        // Insert New Column for Row2 at index '1'.
        var row2col2 = row2.insertCell(1);
        row2col2.innerHTML = beltsF.description;
        // Insert New Column for Row2 at index '2'.
        var row2col3 = row2.insertCell(2);
        row2col3.innerHTML = beltsF.stockLevel;
        // Insert New Column for Row2 at index '3'.
        var row2col4 = row2.insertCell(3);
        row2col4.innerHTML = beltsF.price;
        var row3 = table.insertRow(0);
        // Insert New Column for Row3 at index '0'.
        var row3col1 = row3.insertCell(0);
        row3col1.innerHTML = trousers.product;
        // Insert New Column for Row3 at index '1'.
        var row3col2 = row3.insertCell(1);
        row3col2.innerHTML = trousers.description;
        // Insert New Column for Row3 at index '2'.
        var row3col3 = row3.insertCell(2);
        row3col3.innerHTML = trousers.stockLevel;
        // Insert New Column for Row3 at index '3'.
        var row3col4 = row3.insertCell(3);
        row3col4.innerHTML = trousers.price;
        // Append Table into div.
        var div = document.getElementById('divTable');
        div.appendChild(table);
    }

将 stock 对象移动到 Array 中,并循环它们以创建行。

像这样:

    var stocks = [];
    stocks.push(new Stock("Bag (F)", "Leather Shoulder Bag", 4, 50.45));
    stocks.push(new Stock("Blouse (F)", "Vintage Blue Silk Polka Dot Blouse", 8, 45.99));
    stocks.push(new Stock("Boots (F)", "Soft Leather Brown Ankle Boots", 3, 65.35));
    stocks.push(new Stock("Belts (F)", "Woven Finish Fashion Belt", 15, 21.99));
    stocks.push(new Stock("Shirt (M)", "Jacquard Patter Wrangler Western Shirt", 19, 34.87));
    stocks.push(new Stock("Shoes (M)", "Suede Ankle Boots", 6, 55.00));
    stocks.push(new Stock("Trousers (M)", "Izod Peach Chinos", 23, 31.75));
    stocks.push(new Stock("Belt (M)", "Suede Casual Belt", 4, 22.98));
    stocks.push(new Stock("Hat (M)", "Trilby Style Brown Woven Fix", 2, 67.80));
    function createTable() {
        // Create table.
        var table = document.createElement('table');
        // Apply CSS for table
        table.setAttribute('class', 'article');
      for(var i = 0;i<stocks.length;i++){
          var row1 = table.insertRow(0);
          var row1col1 = row1.insertCell(0);
          var stock = stocks[i]
          row1col1.innerHTML = stock.product;
          // Insert New Column for Row1 at index '1'.
          var row1col2 = row1.insertCell(1);
          row1col2.innerHTML = stock.description;
          // Insert New Column for Row1 at index '2'.
          var row1col3 = row1.insertCell(2);
          row1col3.innerHTML = stock.stockLevel;
          // Insert New Column for Row1 at index '3'.
          var row1col4 = row1.insertCell(3);
          row1col4.innerHTML = stock.price;
        }
        // Append Table into div.
        var div = document.getElementById('divTable');
        div.appendChild(table);
    }

参考你的小提琴,而不是像这样声明对象:

// Instantiate new objects with 'new'
var headings = new Stock("Product", "Description", "Stock Level", "Price");
var shorts = new Stock("Shorts (F)", "Stone Wash Dmin Shorts ", 20, 25.90);
var bag = new Stock("Bag (F)", "Leather Shoulder Bag", 4, 50.45);
var blouse = new Stock("Blouse (F)", "Vintage Blue Silk Polka Dot Blouse", 8, 45.99);
var boots = new Stock("Boots (F)", "Soft Leather Brown Ankle Boots", 3, 65.35);
var beltsF = new Stock("Belts (F)", "Woven Finish Fashion Belt", 15, 21.99);
var shirt = new Stock("Shirt (M)", "Jacquard Patter Wrangler Western Shirt", 19, 34.87);
var shoes = new Stock("Shoes (M)", "Suede Ankle Boots", 6, 55.00);
var trousers = new Stock("Trousers (M)", "Izod Peach Chinos", 23, 31.75);
var beltsM = new Stock("Belt (M)", "Suede Casual Belt", 4, 22.98);
var hat = new Stock("Hat (M)", "Trilby Style Brown Woven Fix", 2, 67.80);

做:

// Instantiate new objects with 'new'
var products = [ ];
products.push(new Stock("Product", "Description", "Stock Level", "Price"));
products.push(new Stock("Shorts (F)", "Stone Wash Dmin Shorts ", 20, 25.90));
....

所以你有一个产品阵列。然后,您的函数将变为:

function createTable(products) {
        // Create table.
        var table = document.createElement('table');
        // Apply CSS for table
        table.setAttribute('class', 'article');
        for (var i = 0; i < products.length; i++) {
          var pr = products[i]
          var row1 = table.insertRow(i);
          var row1col1 = row1.insertCell(1);
          row1col1.innerHTML = pr.product;
          // Insert New Column for Row1 at index '1'.
          var row1col2 = row1.insertCell(1);
          row1col2.innerHTML = pr.description;
          // Insert New Column for Row1 at index '2'.
          var row1col3 = row1.insertCell(2);
          row1col3.innerHTML = pr.stockLevel;
          // Insert New Column for Row1 at index '3'.
          var row1col4 = row1.insertCell(3);
          row1col4.innerHTML = pr.price;
        }
        // Append Table into div.
        var div = document.getElementById('divTable');
        div.appendChild(table);
    }

然后,您将在传递 Products 数组的脚本中调用它。