2017-04-13 68 views
0

是我的實驗代碼去上班/行爲像我工作的代碼假設HTML, CSS,和以前JS工作?商店解析對數組字符串另一個數組

如果不是,爲什麼?此外,我應該怎麼辦創建的我代碼一環陣列式的版本?

實驗代碼:

var currentAccount = []; 
var fieldList = ["firstName","lastName","age","gender"]; 

for (var i = 0; i < fieldList.length; i++) { 
    JSON.parse(fieldList[i]) = document.getElementById(fieldList[i]).value; 
    currentAccount.push(JSON.parse(fieldList[i])); 
} 

工作代碼:

var currentAccount = []; 
var firstName, lastName, age, gender; 

firstName = document.getElementById("firstName").value; 
lastName = document.getElementById("lastName").value; 
age = document.getElementById("age").value; 
gender = document.getElementById("gender").value; 

currentAccount = [firstName, lastName, age, gender]; 

回答

0

沒有必要在你使用JSON.parse()實驗代碼:

for (var i = 0; i < fieldList.length; i++) { 
    var fieldVal = document.getElementById(fieldList[i]).value; 
    currentAccount.push(fieldVal); 
} 
+0

是好有字符串變量的名字嗎? –

+0

無厘頭修改'fieldList中[I]' – charlietfl

+0

更新我的答案存儲字段值的臨時變量,而不是'fieldList中[I]'。這種方式不那麼令人困惑。 –

1

我應該怎麼做才能創造一個我的代碼的循環陣列樣式版本?

像這樣的事情

var fieldIds = [ "firstName", "lastName", "age", "gender" ]; 
var currentAccount = fieldIds.map(function(fieldId){ 
    return document.getElementById(fieldId).value; 
}) 
0

下面是使用ES6,做的document.getElementById的另一種方式迅速解決。希望能幫助到你!

var $ = function(id) { return document.getElementById(id); }; 
var fieldIds = [ "firstName", "lastName", "age", "gender" ]; 
var currentAccount = fieldIds.map((fieldId) =>{ 
    return $(fieldId).value; 
});