2014-10-08 4 views
0

내 작업 : 쉼표로 숫자를 구분하는 & 입력을 하나 갖습니다. 버튼은 합계를 DOM에 출력합니다.Typescript 사용자 입력 숫자의 합을 찾습니다.

어디서부터 시작해야할지 확신하지 못했습니다. 내가 가진 것은 적어도 다소 좋은 시작이라고 생각합니다. 그러나 웹과 스택 오버 플로우를 검색 한 후에는 다른 아이디어를 찾지 못했습니다.

배열을 사용하는 것으로 가정합니다. 또한 한 교수가 처음 클래스를 추가하는 것부터 시작해서 ("클래스 계산 ({...})"은 내가 사용할 수있는 방법이라는 것을 지적했으나 이후로는 그걸 벗어났다. 나는이 상황을 제대로 이해한다면

function calculate(){ 

var numbersinput:HTMLInputElement = 
    <HTMLInputElement>document.getElementById('numbersinput'); 

var numbers:number[] = [parseFloat(numbersinput.value)]; 

var sum = 0; 
for(var i:number = 0; i, numbers.length; i++){ 
    console.log(numbers[i]); 
    sum += numbers[i]; 
} 

var outputElement:HTMLDivElement = 
    <HTMLDivElement>document.getElementById('output'); 
outputElement.innerHTML = sum.toString(); 

} 

답변

1

는 numbersinput 변수 번호 (예 : "3.0, 2의 쉼표로 구분 된 목록을 갖게 돼 다시 그에.

HTML

<input id="numbers"> 
<input type="button" onclick="calculate()" value="click"> 
<div id="output"></div> 

타이프 라이터 , 1.3 ").이 경우 String.prototype.split을 사용하여 숫자를 배열로 바꿀 수 있습니다 .

배열에 숫자가 있으면 루프를 통해 실행하고 합계 할 수 있습니다 (원하는 경우 Array.prototype.reduce 참조).

합계에 추가하기 전에 배열의 각 숫자가 유효한지 확인하는 것이 좋습니다. Number을 사용하여 문자열을 숫자로 변환 한 다음 isNaN을 사용하여 숫자를 합계에 더하기 전에 유효한지 확인할 수 있습니다.

필자가 필요로하는 것은 필자가 의도적으로 코드를 생략했기 때문에 독자적으로 그 부분을 찾아야 할 것입니다.

0

배열의 숫자 유형이 문자열이라고 생각하므로 += 연산자를 사용하면 실제로 연결 한 것이므로 이전에 캐스팅하고 검사해야 할 수 있습니다.

for (var i: number = 0; i, numbers.length; i++) { 
    var num = Number(numbers[i]); 
    if (!isNaN(num)) 
     sum += num; 
}