如何用表中的前一个值递增表中的值?

时间:2019-06-23 21:59:17

标签: javascript arrays increment

我制作了一个程序,可让您使用JavaScript和HTML输入分数;这样会在表中添加一个新行,并显示相关分数。

我希望能够使用相同的输入字段来键入一个新的分数,该分数会与先前输入的分数相加。我似乎无法弄清楚如何存储以前输入的分数而不将其变成新输入的分数。

我尝试创建两个不同的列表并将全局“以前的分数”列表放置在全局位置,但最终仍包含相同的分数。

function list_of_scores() {
  var scores = ["1"];
  var count = 1;

  for (var i = 1; i <= number_players; i++) {
    var id = "score_" + count;
    var score = parseInt(document.getElementById(id).value);
    scores.push(score);
    count++;
  }

  return scores;
}

function table_func() {
  var table = document.getElementById("myTable");
  var row = table.insertRow();

  var scores = list_of_scores();

  scores[0] = table_count_1;
  table_count_1++;

  for (var i = 0; i < scores.length; i++) {
    var cell = row.insertCell();
    cell.innerHTML = scores[i];
  }
}

分数是分数类型的列表。我需要将此列表的每个元素添加到包含第二组分数的新列表中。列表中的第一个元素不是分数,而是代表计分板上的“圆形”。

1 个答案:

答案 0 :(得分:0)

//Event listener for submit button of your input field.
document.getElementById("btn").addEventListener("click",()=>{
    let input = document.getElementById("inputText").value;
    let table = document.getElementById("myTable");
    var previousCell = table.rows[table.rows.length-1].innerText;
    var row = table.insertRow(table.rows.length);
    var cell1 = row.insertCell(0);
    //if else statement sets previous cell value to 0 if previous cell returns NaN.
    if(isNaN(parseInt(previousCell))){
        previousCell = "0";
        let newVal = parseInt(previousCell) + parseInt(input);
        cell1.innerHTML = newVal.toString();
    }
    else{
        let newVal = parseInt(previousCell) + parseInt(input);
        cell1.innerHTML = newVal.toString();
    }
});

如果只想对分数求和,则可以执行以下操作。这些代码要做的就是获取输入字段和上一个单元格的值,将它们相加并使用该值创建新行。