How to remove duplicates objects from an array by using Knockout.js
var ticketgroups = [
{TicketGroup: TicketGroup1, SortOrder: 1},
{TicketGroup: TicketGroup1, SortOrder: 1},
{TicketGroup: TicketGroup2, SortOrder: 2},
{TicketGroup: TicketGroup2, SortOrder: 2},
{TicketGroup: TicketGroup3, SortOrder: 3},
{TicketGroup: TicketGroup3, SortOrder: 3},
];
Output should be
var filltered = [
{TicketGroup: TicketGroup1, SortOrder: 1},
{TicketGroup: TicketGroup2, SortOrder: 2},
{TicketGroup: TicketGroup3, SortOrder: 3},
];
How to bind on my views.
<select id="customticketgroup" data-bind="options: $root.filltered.TicketGroup"/>
If
SortOrderis supposed to be a unique value, you can use it to filter out duplicates. The example below uses aMapto ensure there's only one value per sort order.If your ticketgroups array is actually an
observableArray, you can use apureComputedforfiltered. If you're only interested in theTicketGroupproperty after sorting, you could chain a.map(g => g.TicketGroup)to extract the values.