Sort an array of obects in angular 6












0















I have problem in sorting an array of objects



The object looks like



enter image description here



All I want is to make the *ngFor loop sort it by the group_id property.




component.html




<ul *ngFor="let list of selectgid | groupid">
<li>{{list}}</li>
</ul>



pipe.ts




import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
name: 'groupid'
})
export class GroupidPipe implements PipeTransform {

transform(array: Array<any>): Array<any> {
if (array !== undefined) {
array.sort((a: any, b: any) => {
if (a.group_id < b.group_id) {
return -1;
} else if (a.group_id > b.group_id) {
return 1;
} else {
return 0;
}
});
}
return array;
}
}


I tried to implement this code but it doesn't seem to working. What is wrong in my code or is there anything that needs to be done?










share|improve this question

























  • Do you specifically want this sort to be a pipe? Is selectgid an array or an observable array?

    – P. Moloney
    Nov 22 '18 at 6:04











  • Take a search through stackoverflow; there are plenty questions around this: Async Pipe Sort, Regular Pipe Sort

    – P. Moloney
    Nov 22 '18 at 6:06











  • It is not recommended by the Angular team to do it like this though, see Angular Docs- Filtering Pipe

    – P. Moloney
    Nov 22 '18 at 6:07
















0















I have problem in sorting an array of objects



The object looks like



enter image description here



All I want is to make the *ngFor loop sort it by the group_id property.




component.html




<ul *ngFor="let list of selectgid | groupid">
<li>{{list}}</li>
</ul>



pipe.ts




import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
name: 'groupid'
})
export class GroupidPipe implements PipeTransform {

transform(array: Array<any>): Array<any> {
if (array !== undefined) {
array.sort((a: any, b: any) => {
if (a.group_id < b.group_id) {
return -1;
} else if (a.group_id > b.group_id) {
return 1;
} else {
return 0;
}
});
}
return array;
}
}


I tried to implement this code but it doesn't seem to working. What is wrong in my code or is there anything that needs to be done?










share|improve this question

























  • Do you specifically want this sort to be a pipe? Is selectgid an array or an observable array?

    – P. Moloney
    Nov 22 '18 at 6:04











  • Take a search through stackoverflow; there are plenty questions around this: Async Pipe Sort, Regular Pipe Sort

    – P. Moloney
    Nov 22 '18 at 6:06











  • It is not recommended by the Angular team to do it like this though, see Angular Docs- Filtering Pipe

    – P. Moloney
    Nov 22 '18 at 6:07














0












0








0








I have problem in sorting an array of objects



The object looks like



enter image description here



All I want is to make the *ngFor loop sort it by the group_id property.




component.html




<ul *ngFor="let list of selectgid | groupid">
<li>{{list}}</li>
</ul>



pipe.ts




import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
name: 'groupid'
})
export class GroupidPipe implements PipeTransform {

transform(array: Array<any>): Array<any> {
if (array !== undefined) {
array.sort((a: any, b: any) => {
if (a.group_id < b.group_id) {
return -1;
} else if (a.group_id > b.group_id) {
return 1;
} else {
return 0;
}
});
}
return array;
}
}


I tried to implement this code but it doesn't seem to working. What is wrong in my code or is there anything that needs to be done?










share|improve this question
















I have problem in sorting an array of objects



The object looks like



enter image description here



All I want is to make the *ngFor loop sort it by the group_id property.




component.html




<ul *ngFor="let list of selectgid | groupid">
<li>{{list}}</li>
</ul>



pipe.ts




import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
name: 'groupid'
})
export class GroupidPipe implements PipeTransform {

transform(array: Array<any>): Array<any> {
if (array !== undefined) {
array.sort((a: any, b: any) => {
if (a.group_id < b.group_id) {
return -1;
} else if (a.group_id > b.group_id) {
return 1;
} else {
return 0;
}
});
}
return array;
}
}


I tried to implement this code but it doesn't seem to working. What is wrong in my code or is there anything that needs to be done?







angular typescript sorting angular5 angular6






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 22 '18 at 5:55







Jijo Robin

















asked Nov 21 '18 at 9:03









Jijo RobinJijo Robin

665




665













  • Do you specifically want this sort to be a pipe? Is selectgid an array or an observable array?

    – P. Moloney
    Nov 22 '18 at 6:04











  • Take a search through stackoverflow; there are plenty questions around this: Async Pipe Sort, Regular Pipe Sort

    – P. Moloney
    Nov 22 '18 at 6:06











  • It is not recommended by the Angular team to do it like this though, see Angular Docs- Filtering Pipe

    – P. Moloney
    Nov 22 '18 at 6:07



















  • Do you specifically want this sort to be a pipe? Is selectgid an array or an observable array?

    – P. Moloney
    Nov 22 '18 at 6:04











  • Take a search through stackoverflow; there are plenty questions around this: Async Pipe Sort, Regular Pipe Sort

    – P. Moloney
    Nov 22 '18 at 6:06











  • It is not recommended by the Angular team to do it like this though, see Angular Docs- Filtering Pipe

    – P. Moloney
    Nov 22 '18 at 6:07

















Do you specifically want this sort to be a pipe? Is selectgid an array or an observable array?

– P. Moloney
Nov 22 '18 at 6:04





Do you specifically want this sort to be a pipe? Is selectgid an array or an observable array?

– P. Moloney
Nov 22 '18 at 6:04













Take a search through stackoverflow; there are plenty questions around this: Async Pipe Sort, Regular Pipe Sort

– P. Moloney
Nov 22 '18 at 6:06





Take a search through stackoverflow; there are plenty questions around this: Async Pipe Sort, Regular Pipe Sort

– P. Moloney
Nov 22 '18 at 6:06













It is not recommended by the Angular team to do it like this though, see Angular Docs- Filtering Pipe

– P. Moloney
Nov 22 '18 at 6:07





It is not recommended by the Angular team to do it like this though, see Angular Docs- Filtering Pipe

– P. Moloney
Nov 22 '18 at 6:07












1 Answer
1






active

oldest

votes


















0














Assuming selectgid is your array of object containing the values shown in the image try to sort your data inside ngOnInit() method in your .ts file like this:



this.selectgid.sort((a, b) => {
if (a.group_id < b.group_id) {
return -1;
} else if (a.group_id > b.group_id) {
return 1;
} else {
return 0;
}
})


And on .html page you need to specify the key of Object like this:



<ul *ngFor="let list of selectgid">
<li>{{list.group_id}}</li>
<li>{{list.permission_list}}</li>
</ul>





share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53408490%2fsort-an-array-of-obects-in-angular-6%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Assuming selectgid is your array of object containing the values shown in the image try to sort your data inside ngOnInit() method in your .ts file like this:



    this.selectgid.sort((a, b) => {
    if (a.group_id < b.group_id) {
    return -1;
    } else if (a.group_id > b.group_id) {
    return 1;
    } else {
    return 0;
    }
    })


    And on .html page you need to specify the key of Object like this:



    <ul *ngFor="let list of selectgid">
    <li>{{list.group_id}}</li>
    <li>{{list.permission_list}}</li>
    </ul>





    share|improve this answer




























      0














      Assuming selectgid is your array of object containing the values shown in the image try to sort your data inside ngOnInit() method in your .ts file like this:



      this.selectgid.sort((a, b) => {
      if (a.group_id < b.group_id) {
      return -1;
      } else if (a.group_id > b.group_id) {
      return 1;
      } else {
      return 0;
      }
      })


      And on .html page you need to specify the key of Object like this:



      <ul *ngFor="let list of selectgid">
      <li>{{list.group_id}}</li>
      <li>{{list.permission_list}}</li>
      </ul>





      share|improve this answer


























        0












        0








        0







        Assuming selectgid is your array of object containing the values shown in the image try to sort your data inside ngOnInit() method in your .ts file like this:



        this.selectgid.sort((a, b) => {
        if (a.group_id < b.group_id) {
        return -1;
        } else if (a.group_id > b.group_id) {
        return 1;
        } else {
        return 0;
        }
        })


        And on .html page you need to specify the key of Object like this:



        <ul *ngFor="let list of selectgid">
        <li>{{list.group_id}}</li>
        <li>{{list.permission_list}}</li>
        </ul>





        share|improve this answer













        Assuming selectgid is your array of object containing the values shown in the image try to sort your data inside ngOnInit() method in your .ts file like this:



        this.selectgid.sort((a, b) => {
        if (a.group_id < b.group_id) {
        return -1;
        } else if (a.group_id > b.group_id) {
        return 1;
        } else {
        return 0;
        }
        })


        And on .html page you need to specify the key of Object like this:



        <ul *ngFor="let list of selectgid">
        <li>{{list.group_id}}</li>
        <li>{{list.permission_list}}</li>
        </ul>






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 21 '18 at 9:38









        shail shahshail shah

        12




        12






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53408490%2fsort-an-array-of-obects-in-angular-6%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            MongoDB - Not Authorized To Execute Command

            Npm cannot find a required file even through it is in the searched directory

            in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith