#javascript
#javascript
Вопрос:
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;
Когда я печатаю I patientInfo
, я получаю данные только одной строки… как я могу получить все данные строки?
Комментарии:
1. вы имеете в виду, что вы получаете только одну строку из них или вы получаете все эти данные, объединенные в одну строку?
Ответ №1:
Не совсем уверен, что вы имеете в виду. Но предполагая, что вы используете этот код в цикле, вы всегда перезаписываете 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)
}
или, может быть, вам вообще не нужно этого делать. Вы должны предоставить больше информации.
Дополнительная информация => лучшие ответы.
Ответ №2:
Для перебора свойств объекта используйте for in
.
for (var property in patientInfo) {
alert(property);
}
Однако имейте в виду, что если кто-то расширил Object
, его перечислимые свойства также будут повторены.
Вы можете смягчить это с помощью hasOwnProperty()
.
for (var property in patientInfo) {
if ( ! patientInfo.hasOwnProperty(property)) {
continue;
}
alert(property);
}
В качестве альтернативы вы могли бы указать свой собственный toString()
метод, который форматирует значения так, как вы хотите. Обязательно возвращайте строку.