2013-03-21 4 views
0

클래스 프로젝트의 경우 사용자에게 3 개의 이름을 입력하고 사전 순으로 이름을 정렬 한 다음 화면에 인쇄하는 프로그램을 자바 스크립트로 만들어야합니다.사용자에게 정보를 입력 한 다음 데이터 정렬을 묻습니다.

사용자가 데이터를 입력 할 수있는 프롬프트 상자를 만드는 방법을 알아 냈습니다. 그리고 사용자가 입력 한 문자열을 인쇄하도록 프로그램을 가져올 수 있습니다. 그러나, 나는 자바 스크립트가 문자열을 정렬하는 방법을 알아낼 수 없습니다. 배열을 사용해야한다는 것을 알고 있지만, 배열을 어디에 두어야하는지, 또는 사용자가 입력 한 변수를 알 수있는 방법을 모르겠습니다.

<html> 
<script> 

function disp_prompt() 
     { 
     var names=prompt("Please enter three names","Names") 
     document.getElementById("msg").innerHTML= names 
     } 

</script> 


<center><input type="button" onclick="disp_prompt()" value="Click Here"></center> 
<br> 

<h2><center><div id="msg"></div></center></h2> 
</html> 
+0

사용자가 3 개의 이름을 입력하는 방법은 하나만 프롬프트됩니까? –

+0

무엇을 시도 했습니까? 문자열을 어떻게 처리해야하는지 알고 있습니까? 힌트 : ['split'] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/split), ['sort'] (https://developer.mozilla.org)/en-US/docs/JavaScript/Reference/Global_Objects/Array/sort) 및 ['join'] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/join) 함수 – Bergi

답변

4

당신은 사용자가 한 번에 모든 이름을 입력 할 수 있도록하려면 모든 것은이

var namesToPrompt = 3, 
    names   = [ ]; 

// as long as namesToPrompt is truthy, prompt for inputs 
while(namesToPrompt--) { 
    names.push(prompt('Please enter a name')); 
} 

// sort our array 
names.sort(byName); 

// and print it 
document.getElementById('msg').textContent = names.join(','); 

function byName(a, b) { 
    return a.localeCompare(b); 
} 

처럼 보일 수있다, 당신이 같이 갈 수 :

내가 지금까지 가지고있는 코드입니다

var inputNames = prompt('Please enter three names','Names'); 

document.getElementById('msg').textContent = inputNames 
               .split(/,\s+/) // split by any amount of white-space characters in a row 
               .sort(byName) 
               .join(','); 

function byName(a, b) { 
    return a.localeCompare(b); 
} 
+0

downvote 무엇입니까? – jAndy

+0

사고로 클릭 xD 이것은 기본적으로 내가 그것을하는 것이 좋습니다 것입니다. 함수를 사용하지 않고'.sort() '를 할 수는 있습니다. –

+0

한 번에 세 가지 이름 모두를 사용하도록 권하지는 않습니다. 'jeff, tim, tyler' 또는 jeff tim tyler 또는 jeff, tim, tyler' 또는 임의의 다른 무작위로 입력 할 수 있다는 사실만으로도 작동 할 수 있도록 모든 것을 설명해야합니다. 당신은'.split (/ \ s |, |, \ s)'를 할 수는 있지만, 모든 경우를 다루지는 않습니다. 그리고 그것도 공간이 있기 때문에'jeff 면도기 '와 같은 전체 이름을 허용하지 않습니다. –

관련 문제