开发者

Sorting by FirstName not working in JavaScript

开发者 https://www.devze.com 2023-03-04 15:35 出处:网络
{\"PatientSearchResult\":{\"Patient\":[{\"AccountBalanceCalcMethod\":2,\"AlternatePatientID\":0,\"AssignmentOfBenifits\":0,\"CellPhoneNumber1\":null,\"CellPhoneNumber2\":null,\"Citizenship\":0,\"Crede
{"PatientSearchResult":{"Patient":[{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":null,"Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"2914 FirstName","FullName":"2914 FirstName 2914 LastName","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"2914 LastName","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":2914},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(378709200000-0500)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"4261 FirstName","FullNam开发者_Python百科e":"4261 FirstName 4261 LastName","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"4261 LastName","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":4261},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(1136264400000-0500)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"Bo","FullName":"Bo Ray","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Ray","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19369},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(-2192126400000-0400)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"Mark","FullName":"Mark Noyce","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Noyce","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19387},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(-5347800000000-0400)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"Kevin","FullName":"Kevin Noyce","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Noyce","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19388},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(-381697200000-0500)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"Scott","FullName":"Scott Noyce","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Noyce","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19389},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(-445806000000-0500)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"John","FullName":"John Doe","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Doe","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19395},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(-880830000000-0500)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"Dagwood","FullName":"Dagwood Bumstead","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Bumstead","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19414},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":null,"Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"Clyde","FullName":"Clyde Barrow","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Barrow","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19415},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(-249678000000-0500)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"Fred","FullName":"Fred Flintstone","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Flintstone","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19420}]}}

This is my JSON response, how would i sort it. What i tried. I am parsing my JSON response, then taking it an Array OBJ and the tryin to sort. The results are same even after sorting too.

var PatientSearchData = JSON.parse(PatientSearchResponse);
    var results = PatientSearchData['PatientSearchResult'];
    alert("OLD Result" +results.Patient)
    results.Patient.sort(function(a,b){
        var nameA = a.Firstname.toLowerCase();
        var nameB = b.Firstname.toLowerCase();
        if(nameA < nameB) 
        return -1;
        if(nameA > nameB) 
        return 1
        return 0
   })
   alert("Sorted One" +results.Patient)

Updated Code

function formatData(data){    
  var output = [];    
  for(var i=0, len=data.length; i<len; i++){        
    output.push(data[i].Firstname);    
  }
    return output.join("\n");
}

function RenderPatientSearchData(PatientSearchResponse){
    var PatientSearchData = JSON.parse(PatientSearchResponse);
    var results = PatientSearchData['PatientSearchResult'];
    results.Patient.sort(function(a,b){
           var nameA = a.Firstname.toLowerCase();        
           ar nameB = b.Firstname.toLowerCase();        
           return nameA < nameB ? -1 : nameA > nameB : 0
        })
    rowData = [];
    var prevHeader = ' ';
    for (i = 0, len = results.Patient.length; i < len; i++) {
        var PatientFirstName = results.Patient[i].Firstname;

What do i get combining the firstname alone

[INFO] /TiAPI ( 802): 4261 FirstName
[INFO] /TiAPI ( 802): Migration Test
[INFO] /TiAPI ( 802): Bo
[INFO] /TiAPI ( 802): Mark
[INFO] /TiAPI ( 802): Kevin
[INFO] /TiAPI ( 802): Scott
[INFO] /TiAPI ( 802): John
[INFO] /TiAPI ( 802): Dagwood
[INFO] /TiAPI ( 802): Clyde


It works for me, except the part where you try to debug by displaying the raw array inside an alert. Try this instead:

function formatData(data){
    var output = [];

    for(var i=0, len=data.length; i<len; i++){
        output.push(data[i].Firstname);
    }

    return output.join("\n");
}
[...]
alert("OLD Result:\n" + formatData(results.Patient));
[...]
alert("Sorted One:\n" + formatData(results.Patient));


It may be malformatted JSON?
Your sort function is working.

The result you get to see using results.Patients are something like:
[object Object],[object Object], ...
I suppose?

Try iterating through the results.Patient array before and after, and check the console:

for (var i=0;i<results.Patient.length;i++){
   console.log(results.Patient[i].Firstname);
}

Furthermore, your sort function can also be written as:

function(a,b){
        var nameA = a.Firstname.toLowerCase();
        var nameB = b.Firstname.toLowerCase();
        return nameA < nameB ? -1 : nameA > nameB : 0
});
0

精彩评论

暂无评论...
验证码 换一张
取 消