javascript - How to sort values in my json object -


i sort "years" in yearobject of type object menu starts 2016 instead of 2013. please help. example of code provided here.

my html:

<form name="myform" id="myform">             <select name="optone" id="yearsel" size="1">                 <option value="" selected="selected">select year</option>             </select>             <br>             <br>             <select name="opttwo" id="statesel" size="1">                 <option value="" selected="selected">please select year first</option>             </select>             <br>             <br>             <select name="optthree" id="citysel" size="1" citysel.onchange = function();>             <option value="" selected="selected">please select state first</option>         </select>     </form> 

my js:

var yearobject = {     "2016": {         "california": ["los angeles", "san francisco"],         "florida": ["orlando", "miami"],         "new york": ["manhattan","brooklyn"]     },     "2015": {         "california": ["los angeles", "san francisco"],         "florida": ["orlando", "miami"],         "new york": ["manhattan","brooklyn"]     },     "2014": {         "california": ["los angeles", "san francisco"],         "florida": ["orlando", "miami"],         "new york": ["manhattan","brooklyn"]     },     "2013": {         "california": ["los angeles", "san francisco"],         "florida": ["orlando", "miami"],         "new york": ["manhattan","brooklyn"]     }  } window.onload = function () {     var yearsel = document.getelementbyid("yearsel"),         statesel = document.getelementbyid("statesel"),         citysel = document.getelementbyid("citysel");     (var year in yearobject) {         yearsel.options[yearsel.options.length] = new option(year, year);     }     yearsel.onchange = function () {         statesel.length = 1; // remove options bar first         citysel.length = 1; // remove options bar first         if (this.selectedindex < 1) {           statesel.options[0].text = "please select year first"           citysel.options[0].text = "please select state first"           return; // done            }           statesel.options[0].text = "please select state"         (var state in yearobject[this.value]) {             statesel.options[statesel.options.length] = new option(state, state);         }         if (statesel.options.length==2) {           statesel.selectedindex=1;           statesel.onchange();         }        }     yearsel.onchange(); // reset in case page reloaded     statesel.onchange = function () {         citysel.length = 1; // remove options bar first         if (this.selectedindex < 1) {           citysel.options[0].text = "please select state first"           return; // done            }           citysel.options[0].text = "please select city"          var cities = yearobject[yearsel.value][this.value];         (var = 0; < cities.length; i++) {             citysel.options[citysel.options.length] = new option(cities[i], cities[i]);         }         if (citysel.options.length==2) {           citysel.selectedindex=1;           citysel.onchange();         }        }  citysel.onchange = function(){       switch(citysel.value){  case "los angeles":        if(yearsel.value == "2016"){        location.href="http://google.com"; }else if(yearsel.value == "2015","2014"){        location.href= "http://facebook.com";     } break; case "miami":        if(yearsel.value == "2016","2015"){        location.href="http://google.com"; }else if(yearsel.value == "2014","2013"){        location.href= "http://facebook.com";     } break;   }     }   } 

you need create separate array year , sort using sort() function in javascript.

var sortable = [];  (var year in yearobject) {     sortable.push(year);  }  sortable.sort(function(a, b){return b-a});  (var = 0; < sortable.length; i++){   yearsel.options[yearsel.options.length] = new option(sortable[i], sortable[i]); } 

have @ fiddle


Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -