2016-11-12 48 views
0

我想知道到底是什麼我的代碼丟失或爲什麼它不會工作輸入用戶inputed元素到數組在JavaScript

<script> 
     var index = 0; 
     var name = []; 
     while (true) 
     {   
     var add = window.confirm("Would you like to enter an employee"); 
     if (add === true) 
     { 
     name[index] = prompt("Please enter and employee name"); 
     ++index; 
     } 
     else 
      break; 
     } 
     window.alert(name[0]); 

    </script> 

的window.alert只是看它是否被保存,我試着使用JS中的C++風格,我知道我應該做推式方法?但林不是很確定,所有它在警告框中說是未定義的,我不知道爲什麼,任何幫助將不勝感激,謝謝。我不知道什麼是什麼,什麼不允許在JavaScript中,我認爲增加的東西是相同的殭屍JS和C + +。

+0

C++陣列點點有很多比JavaScript數組更靈活,因此應使用一個陣列的方法。 – zer00ne

回答

1

你需要有一個數組,推動要素,

var index = 0; 
var names = []; 
while (true) { 
    var add = window.confirm("Would you like to enter an employee"); 
    if (add === true) { 
    var newname = prompt("Please enter and employee name"); 
    names.push(newname); 
    ++index; 
    } else 
    break; 
} 
window.alert(names); 

DEMO

+0

數組變量'name'應該具有不同的名稱,因爲'name'是JavaScript中內置屬性的名稱。它將在JSFiddle上工作,但是當腳本直接在瀏覽器中執行時,它會顯示'name.push不是函數'。 – NavkarJ

+0

@Nvj有更改 – Sajeetharan

0

使用push到新的輸入添加到陣列像這樣:

var index = 0, employee; 
 
     var nameArr = []; 
 
     while (true) 
 
     {   
 
     var add = window.confirm("Would you like to enter an employee"); 
 
     if (add === true) 
 
     { 
 
     employee = prompt("Please enter and employee name"); 
 
     nameArr.push(employee); 
 
     ++index; 
 
     } 
 
     else 
 
      break; 
 
     } 
 
     window.alert(nameArr[0]); 
 
     console.log(nameArr);

0

遞歸

function addEmployee(arr) { 
 
     let name = arr ? arr : []; 
 
     let yes = confirm("Would you like to enter an employee"); 
 
     if (yes) { 
 
     let employee = prompt("Please enter and employee name"); 
 
      name.push(employee); 
 
      addEmployee(name); 
 
     } else { 
 
      alert(name); 
 
     } 
 
    }; 
 
    addEmployee();