2013-10-01 111 views
1

我喜歡有數組或對象,如:添加多個值到一個數組或對象在javascript

[0] 
    text:"first" 
    id: 1 
[1] 
    text:"second" 
    id: 2 
[2] 
    text:"third" 
    id: 3 

讓自己:

1: first 
2: 1 
3: second 
4: 2 
5: third 
6: 3 

這裏是我的的JavaScript與實施爲array此刻:

var numberOfQuestions = questionaireResult.numberOfQuestions; 
       var i; 
       var j; 
       var result = []; 

       for (i = 0; i < numberOfQuestions; i++) { 
        debugger; 
        var question = questionaireResult.questions[i].text; 
        var questionID = questionaireResult.questions[i].id; 


        for (j = 0; j < questionaireResult.questions[i].answers.length; j++) { 

         var text = questionaireResult.questions[i].answers[j].text; 
         var id = questionaireResult.questions[i].answers[j].id; 
         result.push(text, id); 
        } 
} 

請幫助我們得到結構數組或對象

回答

7

推送包含數據的陣列,而不是一個對象:

result.push({text: text, id: id}); 
+1

完美解決方案! –

+3

@RagimsRagimovs:在下一個版本的JavaScript(ECMAScript6)中,它會更加簡潔:'result.push({text,id});'(這在功能上與上面相同;基本上它只是算出來來自變量名稱的屬性名稱)。但我們還沒有ES6。 :-) –

0

假設你想存儲所有的答案成一個單一的陣列,可以使用concat得到預期的結果,並減少在同一時間的代碼量:

var questions = questionaireResult.questions, 
    result = [], 
    l = questions.length, 
    i = 0; 

for (; i < l; i++) { 
    result = result.concat(
     questions[i].answers 
    ); 
} 

以下是如何concat作品(mdn doc):

var a = [1, 2, 3], 
    b = [4, 5, 6]; 
a.concat(b); // [1, 2, 3, 4, 5, 6]