2013-10-30 90 views
1

我需要有關將數組元素作爲對象插入到另一個數組中的幫助。我有以下代碼:Javascript/Node - 使用for循環將對象插入到數組中

tableLength = 3; 
nyCourt = []; 
oldArr = [Buy, String, Question] 

for (var t = 0; t < tableLength; t++) { 
    nyCourt.push({}); 
     for (var i = 0; i < OldArr.length; i++) { 
      nyCourt.Title = OldArr[i] ; 
     } 
}; 

代碼心不是工作,我想在下面的格式輸出

[{Title:Buy }, 
{Title: String}, 
{Title: Question}] 

但輸出我得到的是這樣的:

[{Title:Question }, 
{Title: Question}, 
{Title: Question}] 
+0

*「但輸出我得到的是這個」 *我不這麼認爲,不與代碼。 –

回答

1

這條線:

nyCourt.Title = OldArr[i] 

寫入在nyCourt對象(它是一個數組對象)上的Title屬性,在循環中重複。最後一項任務獲勝。

但是,根據你所說的你想要輸出結果,你的代碼是過於複雜的。你只需要一個循環:

var nyCourt = []; 
var oldArr = [Buy, String, Question]; 

for (var i = 0; i < oldArr.length; i++) { 
    nyCourt.push({Title: oldArr[i] }); 
} 

Live Example(使用Chrome或別的現代)| Source

還是因爲這是節點,所以我們知道我們有map

var oldArr = [Buy, String, Question]; 
var nyCourt = oldArr.map(function(entry) { 
    return {Title: entry}; 
}); 

Live Example | Source

+0

嗨,謝謝,事情是我想要代碼中的兩個循環。 – Rajat

+0

@Rajat:根據你說的你想要的輸出,這是沒有道理的。 **爲什麼**你想要兩個循環? –

+0

因爲這是一個任務:( – Rajat

1
//this give the output you want 
    tableLength = 3; 
    nyCourt = []; 
    oldArr = ['Buy', 'String', 'Question']; 

    for (var t = 0; t < oldArr.length; t++) { 
     nyCourt.push({Title: oldArr[t]}); 
    }; 

    console.log(nyCourt); 
0

地方,推動循環內部功能也改變了這樣的代碼

for (var t = 0; t < tableLength; t++) {  
      for (var i = 0; i < OldArr.length; i++) { 
       nyCourt.push({"Title": oldArr[t]}); 
      } 
    }; 
+0

感謝Arviin的幫助 – Rajat

+0

hety Rajat完成了這項工作? – Arvin

相關問題