2013-05-28 60 views
0

我要動態地構建一個數組,最終會看起來像這樣推到陣列時沒有引號,或從陣列

var data2 = [ 
    [gd(2013, 5, "23"), 33], [gd(2013, 5, 24), 41], [gd(2013, 5, 25), 29], [gd(2013, 5, 26), 12], [gd(2013, 5, 28), 17] 
]; 

的代碼的其餘部分去掉引號距離這一點上是非常哈克起我所想要的實際上使得它流線型的前工作...

我建立我的字符串,就像是上面

varData = '[gd(' + thisYear + ',' + thisMonth + ',' + thisDay + '),' + thisInt + ']'; 

然後我把它推到數組數據2

data2.push(varData); 

這創造了這個輸出數組 -

["[gd(2013,23,5),4]", "[gd(2013,24,5),41]", "[gd(2013,28,5),4]"] 

我怎麼會得到相同的陣列沒有「各地各指標的?或者我是否完全以錯誤的方式去解決這個問題?我沒有太多以這種方式使用數組的經驗,所以我不確定它是否可以動態構建,甚至不知道從哪裏開始。編輯/更新: 缺少gd功能!

function gd(year, month, day) { 
    return new Date(year, month - 1, day).getTime(); 
} 
+0

什麼樣的表達是gd()? –

+7

你幾乎肯定會這樣做的錯誤。什麼是'gd'? –

+0

'gd(2013,5,「23」)'不是一個有效的值,它應該是一個字符串 –

回答

3

如果你真的想要什麼,你必須在第一個例子,那麼你會建立一個這樣的:

var data2 = []; 

// For each item: 
data2.push([gd(thisYear, thisMonth, thisDay), thisInt]); 
+0

我不知道有可能以這種方式構建每個數組項目!這看起來正是我所要求的(和tbh,我應該拿起這個,因爲它實際上很簡單)! –

1

只需直接推不數組中字符串的形式:

data2.push([ 'gd(' + thisYear + ',' + thisMonth + ',' + thisDay + ')', thisInt ]); 
+0

Thanks!You got在黑暗獵鷹之前,所以你得到了答案!再次感謝你,不能相信我沒有拿起這個,這很容易...我喜歡認爲我是一個體面的程序員,但有時有隻是你想念的小事 –

+0

@Gary Kenyon,請注意他的回答和我的不一樣,他們做不同的事情。是數組的字符串,而我的調用'gd'函數。 –

+0

@GaryKenyon兩個答案都有明顯的不同!在我的解決方案中,我推入字符串'「gd(2013,05,28)」'而在Dark Falcon的回答中,函數調用的結果放入數組中。所以你必須決定,它是什麼,你真的想要! – Sirko