Sort an array except one in JavaScript

  • A+

I have an array and I am sorting it but I need to sort everything except one element of my array.

My array is:

    var Comparison = [{key: "None", value: "None"},    {key:"Geographical Area", value:"Geographical_Area"},    {key:"Forests", value:"Forests"},    {key:"Barren Unculturable Land", value:"Barren_Unculturable_Land"},    {key:"Land put to Non agricultural use", value:"Land_put_to_Non_agricultural_use"},    {key:"Land Area", value:"Land_Area"},    {key:"Water Area", value:"Water_Area"},    {key:"Culturable Waste", value:"Culturable_Waste"},    {key:"Permanent Pastures", value:"Permanent_Pastures"},    {key:"Land under Tree Crops", value:"Land_under_Tree_Crops"},    {key:"Fallow Land excl Current Fallow", value:"Fallow_Land_excl_Current_Fallow"},    {key:"Current Fallow", value:"Current_Fallow"},    {key:"Total Unculturable Land", value:"Total_Unculturable_Land"},    {key:"Net Sown Area", value:"Net_Sown_Area"},    {key:"Gross Sown Area", value:"Gross_Sown_Area"},    {key:"Cropping Intensity", value:"Cropping_Intensity"},] 

I am sorting this array using this code:

var Comparison_sort = this.Comparison.sort(function (a, b) {   if (a.key < b.key)       return -1;   if (a.key > b.key)       return 1;   return 0; }); 

This is sorting my array perfectly, but I want one of my elements to be on top, meaning my element None should be on top and sort all other elements.

For example, I am getting this result:

   {key: "Barren Unculturable Land", value: "Barren_Unculturable_Land"}    {key: "Cropping Intensity", value: "Cropping_Intensity"}    {key: "Culturable Waste", value: "Culturable_Waste"}     ....    {key: "None", value: "None"} 

But I want a result like this:

   {key: "None", value: "None"}    {key: "Barren Unculturable Land", value: "Barren_Unculturable_Land"}    {key: "Cropping Intensity", value: "Cropping_Intensity"}    {key: "Culturable Waste", value: "Culturable_Waste"}     .... 

I saw an answer, Sort array in TypeScript, but I was unable to use this answer to my problem.


var Comparison_sort = this.Comparison.sort(function (a, b) {   if(a.key == b.key) return 0;   if (a.key == 'None') return -1;   if (b.key == 'None') return 1;    if (a.key < b.key)       return -1;   if (a.key > b.key)       return 1;   return 0; }); 

tells "do a regular sort, except if the key is none which means it must go first."


:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: