2011-04-13 36 views
0
var patientInfo = {} 
patientInfo.patientID = row.patientID; 
patientInfo.firstName = row.firstName; 
patientInfo.lastName = row.lastName; 
patientInfo.dateOfBirth = row.DateOfBirth; 
patientInfo.age = row.age; 
patientInfo.gender = row.gender; 

在我打印我patientInfo,我只得到一个行的数据...我怎样才能得到所有行的数据?让所有值的行

+1

你的意思是你只得到其中一行,或者你将所有这些数据连接在一行中? – Bastardo 2011-04-13 06:41:04

+0

我只得到一行。 – theJava 2011-04-13 07:01:28

+0

:S?老兄....? – Bastardo 2011-04-13 07:28:22

回答

2

不太清楚你的意思。但假设你将这段代码放在一个循环中,你总是覆盖patientInfo数据。将它们添加到数组中:

infos = [] 

for(.....) { 
    var patientInfo = {} 
    patientInfo.patientID = row.patientID; 
    patientInfo.firstName = row.firstName; 
    patientInfo.lastName = row.lastName; 
    patientInfo.dateOfBirth = row.DateOfBirth; 
    patientInfo.age = row.age; 
    patientInfo.gender = row.gender; 

    infos.push(patientInfo) 
} 

在此处将很高兴知道row即将来临。也许你可以这样做:

infos = [] 

for(.....) { 
    infos.push(row) 
} 

或者你可能不需要这样做。你必须提供更多信息。

更多信息=>更好的答案。

+0

+1为好的答案和非常有用的最后一句话:) – alex 2011-04-13 11:14:25

1

要迭代对象中的属性,请使用for in

for (var property in patientInfo) { 
    alert(property); 
} 

请记住,但是,如果有人增强Object,其枚举的属性将在太重复。

您可以通过使用hasOwnProperty()来减轻这一点。

for (var property in patientInfo) { 
    if (! patientInfo.hasOwnProperty(property)) { 
     continue; 
    } 
    alert(property); 
} 

或者,你可以指定你自己toString()方法,但是格式化你想要的值。一定要返回一个字符串。