如何改进我的JavaScript代码?

如何改进我的JavaScript代码?,javascript,optimization,Javascript,Optimization,我编写了以下代码来生成带有随机数的表,并想询问是否有任何方法可以优化/增强/模块化JavaScript代码,特别是addColumn和addRow函数 这是HTML代码: <body onload="initlization()"> <form> <input type="button" class="button" value="Add Row" onclick="addRow()" /> <input type="button" class="bu

我编写了以下代码来生成带有随机数的表,并想询问是否有任何方法可以优化/增强/模块化JavaScript代码,特别是
addColumn
addRow
函数

这是HTML代码:

<body  onload="initlization()">
<form>
<input type="button" class="button" value="Add Row" onclick="addRow()" />
<input type="button" class="button" value="Delete Row" onclick="deleteRow()" />
<input type="button" class="button" value="Add column" onclick="addColumn()" />
<input type="button" class="button" value="delete column" onclick="deleteColumn()" />    
</form>
<table>
<tr>
    <td></td> 
    <td> </td> 
</tr>
<tr> 
    <td> </td>
    <td> </td>
 </tr>
</table>
</body>

这是JavaScript代码:

var blocks;
var myTable;
var nums = [];

function initlization() {
  myTable = document.getElementsByTagName("table")[0];
  shuffle(); //need to shuffle initially 
}

function shuffle() {
  //need to get all tds each time the table is shuffled
  blocks = document.getElementsByTagName("td");
  tableSize = blocks.length;
  shuffledArray(0, tableSize);
  for (var i = 0; i < tableSize; i++) {
    blocks[i].innerHTML = '<span draggable="true">' + nums[i] + '</span>';
  }
}

function addColumn() {
  // Getting current table size by multiplying number of rows by number of   columns
  tableSize = (myTable.rows.length) * (myTable.rows[0].cells.length);
  // Getting new table size by adding the number of rows
  newTableSize = tableSize + (myTable.rows.length);
  shuffledArray(tableSize, newTableSize);
  index = Math.floor(Math.random() * (myTable.rows[0].cells.length) + 1);
  for (var i = 0; i < myTable.rows.length; i++) {
    myCell = myTable.rows[i].insertCell(index);
    myCell.innerHTML = '<span draggable="true">' + nums[i] + '</span>';
  }
}

function addRow() {
  tableSize = (myTable.rows.length) * (myTable.rows[0].cells.length);
  newTableSize = (myTable.rows.length + 1) * (myTable.rows[0].cells.length);
  shuffledArray(tableSize, newTableSize);
  index = Math.floor(Math.random() * (myTable.rows.length) + 1);
  var row = myTable.insertRow(index);
  for (var i = 0; i < myTable.rows[0].cells.length; i++) {
    var myCell = row.insertCell(i);
    myCell.innerHTML = '<span draggable="true">' + nums[i] + '</span>';

  }
}

function deleteColumn() {
  var allRows = myTable.rows;
  if (allRows[0].cells.length > 2) {
    for (var i = 0; i < allRows.length; i++) {
      allRows[i].deleteCell(-1);
    }
    shuffle();
  }
}

function deleteRow() {
  if (myTable.rows.length > 2) {
    myTable.deleteRow(0);
    shuffle();
  }
}
function shuffledArray( from,  to) {
    for(i=from; i<to;i++){
        nums[i-from]=i;
        }
    for (var i = to-from; i; i--) {
        j= Math.floor(Math.random() *i);

        [nums[i - 1], nums[j]] = [nums[j], nums[i - 1]];
        }
}
var块;
var-myTable;
var nums=[];
函数初始化(){
myTable=document.getElementsByTagName(“表”)[0];
shuffle();//最初需要洗牌
}
函数shuffle(){
//每次洗牌时需要获得所有tds
blocks=document.getElementsByTagName(“td”);
tableSize=blocks.length;
ShuffleArray(0,表大小);
for(var i=0;i2){
对于(var i=0;i2){
myTable.deleteRow(0);
洗牌();
}
}
函数shuffledArray(从,到){
对于(i=from;i以下测试代码


随机表
var块;
var myTable=document.getElementsByTagName(“表”)[0];
var nums=[];
初始化();
函数初始化(){
myTable=document.getElementsByTagName(“表”)[0];
shuffle();//最初需要洗牌
}
函数shuffle(){
//每次洗牌时需要获得所有tds
blocks=document.getElementsByTagName(“td”);
tableSize=blocks.length;
ShuffleArray(0,表大小);
对于(变量i=0;变量i=2){
对于(var i=0;i2){
myTable.deleteRow(0);
洗牌();
}
}
函数shuffledArray(从,到){
因为(i=from;iis可能更适合尝试在第一行添加
initilization();
,无论何时我在标题中看到“紧急”,我都会投反对票。在这里每天看几年之后,我仍然不明白为什么人们认为这是一种适合向志愿者致辞的方式。