>

배열에서 숫자를 얻고 싶습니다. 처음에 나는이 숫자들의 합을 구하기 위해 숫자를 수집합니다. 하지만 split 를 사용하는 방법  이리? 여기서 분할이 필요하지 않을 수도 있습니다.

var input = document.getElementById("myInp");
input.addEventListener("blur", getValues);
var num = document.getElementById("myNum");
var result = document.getElementById("result");
var sumBtn = document.getElementById("sumBtn");
sumBtn.addEventListener("click", getSum);
var arr = [];
function getValues() {
  arr.push(input.value);
  num.innerHTML = arr;
}

function getSum() {
  result.innerHTML = 0;
  arr.split(",");
  result.innerHTML = parseFloat(result.innerHTML) + arr;
}

<input type="text" id="myInp">
<button id="myBtn">Start</button>
<p id="myNum"></p>
<button id="sumBtn">Getsum</button>
<p id="result"></p>


  • 답변 # 1

    다음 코드를 시도해보십시오

       var input = document.getElementById("myInp");
        input.addEventListener("blur", getValues);
        var num = document.getElementById("myNum");
        var result = document.getElementById("result");
        var sumBtn = document.getElementById("sumBtn");
        sumBtn.addEventListener("click", getSum);
    
        var arr = [];
        function getValues(){
        	arr.push(input.value);
        	num.innerHTML = arr;
        }
    
        function getSum(){
        	result.innerHTML = 0;
        	let data = arr[0].split(",");
        	let sum = data.reduce((sum,val)=>{return sum + parseFloat(val);},0)
        	result.innerHTML = sum;
        }
    
    
       <input type="text" id="myInp">
        <button id="myBtn">Start</button>
        <p id="myNum"></p>
        <button id="sumBtn">Getsum</button>
        <p id="result"></p>
    
    

  • 답변 # 2

    var input = document.getElementById("myInp");
    input.addEventListener("blur", getValues);
    var num = document.getElementById("myNum");
    var result = document.getElementById("result");
    var sumBtn = document.getElementById("sumBtn");
    sumBtn.addEventListener("click", getSum);
    var arr = [];
    function getValues() {
      arr.push(input.value);
      num.innerHTML = arr;
    }
    
    function getSum() {
      result.innerHTML = 0; 
      result.innerHTML = arr.reduce((a, x) => +a + +x);
    }
    
    
    <input type="text" id="myInp">
    <button id="myBtn">Start</button>
    <p id="myNum"></p>
    <button id="sumBtn">Getsum</button>
    <p id="result"></p>
    
    

  • 답변 # 3

    arr.join을 의미합니다. 그리고 당신도 축소해야하고 숫자로 변환

    한 번에 하나의 숫자를 입력한다고 가정하면 코드는 다음과 같습니다.

    var input = document.getElementById("myInp"),
      but = document.getElementById("myBtn"),
      num = document.getElementById("myNum"),
      result = document.getElementById("result"),
      sumBtn = document.getElementById("sumBtn");
    but.addEventListener("click", getValues);
    sumBtn.addEventListener("click", getSum);
    var arr = [];
    function getValues() {
      var val = +input.value // make it a number before pushing
      if (!isNaN(val)) {
        arr.push(val); 
      }  
      input.focus(); 
      input.select();
      num.innerHTML = arr;
    }
    
    function getSum() {
      result.innerHTML = arr.join("+") + "=" + 
        arr.reduce((a, b) => a + b, 0); // the reduce will sum the numbers
    }
    
    
    <input type="text" id="myInp">
    <button id="myBtn">Start</button>
    <p id="myNum"></p>
    <button id="sumBtn">Getsum</button>
    <p id="result"></p>
    
    

    쉼표로 구분 된 숫자를 입력하려면 다음을 시도하십시오 :

    var input = document.getElementById("myInp"),
      but = document.getElementById("myBtn"),
      num = document.getElementById("myNum"),
      result = document.getElementById("result"),
      sumBtn = document.getElementById("sumBtn");
    but.addEventListener("click", getValues);
    sumBtn.addEventListener("click", getSum);
    var arr = [];
    function getValues() {
      arr.push(input.value);
      input.focus();
      input.select();
      num.innerHTML = arr;
    }
    
    function getSum() {
      console.log(arr)
      arr.forEach(function(nums) {
        if (nums) {
          var thisArr = nums.split(",")
          result.innerHTML += thisArr.join("+") + "=" +
            thisArr.reduce((a, b) => +a + +b, 0) + "<br/>"; // the reduce will sum the numbers
        }
      })
    }
    
    
    <input type="text" id="myInp" placeholder="for ex. 1,2,3">
    <button id="myBtn">Start</button>
    <p id="myNum"></p>
    <button id="sumBtn">Getsum</button>
    <p id="result"></p>
    
    

  • 답변 # 4

    각 숫자를 하나씩 입력한다고 가정합니다. 이 코드를 여러분이 원하는 것의 예로 작성했습니다.

    시작 버튼을 제거하고 Enter를 클릭하면 배열에 추가됩니다.(시작 버튼의 목적은 배열에 숫자를 추가하는 것이 었습니다. "blur"eventListener가 이미 있습니다.)

    또한 입력 유형을텍스트에서숫자로 변경하여 실패 가능성을 줄였습니다.

    var arr = [];
    var input = $('#myInp');
    var num = $('#myNum');
    var sumBtn = $('#sumBtn');
    var result = $('#result');
    
    input.keypress(function(e) {
      if (e.keyCode == 13) {
        getValues(this);
        input.val("");
      }
    });
    sumBtn.click(function(){
    	result.text(arr.reduce((a, b) => a + b, 0))
    })
    function getValues(e) {
      arr.push( parseInt(input.val()));
      $('#myNum').text(arr.join(" + "));
    }
    
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="number" id="myInp">
    <p id="myNum"></p>
    <button id="sumBtn">Getsum</button>
    <p id="result"></p>
    
    

관련 자료

  • 이전 node.js - JSON Objet에서 문자열 속성을 읽는 방법
  • 다음 linux - hadoop 구성 - 기본 클래스 orgapachehadoop을로드하거나 찾을 수 없음