求JS高手解决个关于JS对象的问题!

例如(见谅我这个化学渣渣):
我从后台数据取出了一组JSON数据:K {val:19} Ca{val:20} Na{val:11} M{val:12}...
但是我要在 JS上 显示:钾、钙、钠、镁...并且要根据val 排序后获得两个数组:
【钠、镁、钾、钙】
【11、12、19、20】

var o= [
    { '钾': 'K', 'val': 19 },
    { '钙': 'Ca', 'val': 20 },
    { '钠': 'Na', 'val': 11 },
    { '镁': 'M', 'val': 12 }

];
alert("排序前\n"+JSON.stringify(o));

function sortJSON(data, key) {
    return data.sort(function (a, b) {
        var x = a[key];
        var y = b[key];
        return ((x < y) ? -1 : ((x > y) ? 1 : 0));
    });
}

o2= sortJSON(o, 'val');
alert("排序后\n"+ JSON.stringify(o2));
var element = [ {name:'K',val:19},{name:'Ca',val:20},{name:'Na',val:11} ]; var names=[],vals=[]; for(var i=0;i<element.length-1;i++){ for(var j=i+1;j<element.length;j++){ if(element[i].val>element[j].val){ var key = element[j].val; element[j].val=element[i].val; element[i].val=key; var name = element[j].name; element[j].name=element[i].name; element[i].name=name; } } }; for(var i=0;i<element.length;i++){ vals[i]=element[i].val; names[i]=element[i].name; alert(vals[i]+' '+names[i]); }

K={val:19} Ca ={val:20} Na ={val:11} M ={val:12}

var json = {k, Ca, Na, M};

var array;

for(var i;i<json.length;i++){

    for(var j=i;j<json.length;j++){

        if (json[i].val > json[j].val)
                {
                    val temp = json[i];
                    json[i] = json[j];
                    json[j] = temp;
                }
    }

}
排序后输入就行了,未经测试,不对的地方还请谅解

数据已经放进json了,如果不用解析就在前台直接拿就可以了,比如JSON.results[0].K,就能拿到K的val,在对应赋值中文,然后传进数组排序就好了

     <script>
      function doJson(){
          //创建json对象
      var date =[{"key":"K","value":19},{"key":"Ca","value":20},{"key":"Na","value":11},{"key":"M","value":12}];
     //创建两个数组,分别存放key和value
      var a=new Array();
      var b=new Array();
      for(var item in date){//遍历json
        a[item]=date[item].key;
         b[item]=date[item].value;
      }

      //遍历数组b,根据数组b为a,b两数组排序
      for(var i = 1;i<a.length; i++){
          //由于数组从0开始,所以每次要先把前两个排序
          if(b[0]>b[1]){
              var c=0;
             c=b[0];
             b[0]=b[1];
             b[1]=c;
              var d=null;
              d=a[0];
             a[0]=a[1];
             a[1]=d;
          }

          for(var j = 1;j<a.length; j++){
          if(b[j]<b[j-1]){
             var c=0;
             c=b[j];
             b[j]=b[j-1];
             b[j-1]=c;
             var d=null;
              d=a[j];
             a[j]=a[j-1];
             a[j-1]=d;
          }}
      }
      alert("["+a+"]");
      alert("["+b+"]");
}
    </script>