2017-04-12 97 views
0

我有這個問題,我一直在努力了幾個小時,沒有運氣。我應該編寫JavaScript代碼,提示用戶輸入3個名稱(一次一個)。該程序應按升序排列並顯示不同行上的名稱。排序用戶輸入並打印它

我可以讓程序提示用戶輸入名稱,但難以對它們進行排序並正確顯示它們。

<html> 
<head> 
    <title>Day 3 - Example 1</title> 
</head 
<body> 
<center> 
<script language="javascript"> 

    var na1,na2,na3; 
    na1=prompt("Enter your first name:",""); 
    na2=prompt("Enter your second name:",""); 
    na3=prompt("Enter your third name",""); 
    var na1_na2 = compare(na1, na2); 
    var na1_na3 = compare(na1, na3); 
    var na2_na3 = compare(na2, na3); 
    var first, second, third; 

    if (na1_na2 === -1) { 

     if (na1_na3 === -1) { 

      first = na1; 


      if (na2_na3 === -1) { 

       second = na2; 
       third = na3; 
      } else { 

       second = na3; 
       third = na2; 
      } 
     } else { 

      first = na3 
      second = na1; 
      third = na2; 
     } 
    } else { 

    } 
    function compare(name1, name2) { 
     name1 = name1.toLowerCase(); 
     name2 = name2.toLowerCase(); 

     if (name1 === name2) return 0; 

     var lengthOfShorterName = Math.min(name1.length, name2.length) 

     for (var i = 0; i < lengthOfShorterName; i++) { 
      if (name1.charAt(i) > name2.charAt(i)) return 1; 
      if (name1.charAt(i) < name2.charAt(i)) return -1; 
     } 

     if (name1.lenght < name2.length) return -1; 
     return 1; 
    } 

</script> 
</center> 
</body> 
</html> 
+1

1)你有一個錯字:'name1.lenght'應該是'name1.length' 2)你怎麼想顯示他們呢?您可以使用'alert','console.log'或將它們插入到DOM中。 –

+1

你還需要明確地看看使用Array.sort,除非你已經被指示不要:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort – Triptych

回答

2

只需將名稱放入數組中,並使用Array.sort來排序。

// Create a new, empty array 
 
var names = []; 
 

 
// Prompt for the names and put each into the array: 
 
names.push(prompt("Enter your first name:","")); 
 
names.push(prompt("Enter your middle name:","")); 
 
names.push(prompt("Enter your last name:","")); 
 

 
// Sort the names: 
 
names.sort(); 
 

 
// Print the results: 
 
names.forEach(function(value){ 
 
    console.log(value); 
 
});

+0

我只寫同樣的例子:) –