2010-10-18 44 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

相关问题