2010-10-18 74 views
0

所以,我有一個包含X對象的數組,所有對象都按日期命名,並且包含超出名稱的無用數據。 我想將這些日期存儲在數組中供以後使用,顯然,數組中沒有找到對象,因此如何遍歷數組並將其名稱保存到另一個數組中的字符串中?查找JS數組中的對象並將名稱存儲到新數組中?

編輯:好這個問題是由於一個主要brainfart ...答案顯然是

var dP = $('#calendar').GetDate(); 
    var dPTmp = []; 
    var i = 0; 
    for (var id in dP) { 
     dPTmp[i] = dP[id].toString(); 
     i++; 
    } 
    console.log(dPTmp); 
+1

這有點令人困惑,因爲你正在與'Object'交換'Array'。在JavaScript中,沒有什麼像關聯數組。那些是對象。你能清除這個嗎? – jwueller 2010-10-18 10:47:18

+0

var dP = $('#calendar')。GetDates(); --- dP現在將是一個名爲「October 18 2010 00:00」的對象數組,其中包含一週中的幾天,一年中的幾個月以及不需要的一些列表。我需要這個名字作爲一個字符串。 – Mantar 2010-10-18 10:51:16

+0

請確保在循環中檢查'.hasOwnProperty()'!否則你會遇到嚴重的麻煩。 – jwueller 2010-10-18 11:03:45

回答

0

難以捉摸的評論說,你不處理的Array但有一個Object

但是,您可能要查找的構造是for..in statement,它允許您循環訪問該對象的屬性。

東西沿着這些路線:

var object1 = { '2010-10-18': 'today', '2010-10-19': 'tomorrow' }, 
    dateArray = [], 
    dateStr = ''; 

for (dateStr in object1) { 
    // here you should probably check that dateStr 
    // and the corresponding value are in correct format 
    // in case someone or something has extended the Object class 
    dateArray.push(dateStr) 
} 

// dateArray is now [ '2010-10-18', '2010-10-19' ] 

另外請注意,你不能相信該對象的屬性將被重複「按順序」。見this question

相關問題