2014-02-11 7 views
1
var perimeterBox = function(length, width) { 
    return (length * 2) + (width * 2); 
}; 

var justAsk = prompt("what is the length, width?"); 

perimeterBox(justAsk); 

실행할 때 프롬프트가 나타납니다. 그러나 길이, 너비 (예 : 7,3)를 입력하면 값이 null이됩니다. 생각?자바 스크립트 프롬프트에서 예상 값을 반환하지 않는 함수 내에서

+1

'prompt' 문자열' "7, 3"을'반환 않습니다. 'perimeterBox' 함수는 두 개의 숫자를 기다리고 있습니다. – Bergi

답변

1

당신은 사용자가 입력 한 문자열에서 값을 추출해야합니다

var perimeterBox = function(length, width) { 
    return (length * 2) + (width * 2); 
}; 

var justAsk = prompt("what is the length, width?"); // justAsk is "7,3" 

var values = justAsk.match(/\d+/g); // values is ["7", "3"] 
var width = parseInt(values[0]); // width is 7 
var height = parseInt(values[1]); // height is 3 

perimeterBox(width, height); 
+0

나는 이것을 좋아하지만,'perseBox' 함수의'*'가 타입을 int에 상관없이 강요 할 것이기 때문에'parseInt'는 필요하지 않습니다. 그리고'/ \ d + /'는 그것이 절대로 int가 아니어야합니다. –

+0

또한 사용자가 '4.5, 7.6''을 입력 할 때 위험 할 수 있으며 '4'와 '5'만 꺼내기 때문에 끊어 질 수 있습니다. –

+0

'/ \ d + (? : \. \ d *?)/g'라고 생각합니다. –

관련 문제