cari

Rumah  >  Soal Jawab  >  teks badan

javascript - menyusun objek

Seperti yang ditunjukkan dalam gambar, saya ingin membalikkan susunan berdasarkan "1", "99", "23" menjadi

NvTC

Boleh saya bertanya kepada tuan yang tahu?

天蓬老师天蓬老师2765 hari yang lalu481

membalas semua(5)saya akan balas

  • 巴扎黑

    巴扎黑2017-05-19 10:12:41

    Dalam Objek, data disimpan dalam kunci => pasangan nilai, jadi tiada masalah pesanan

    balas
    0
  • 天蓬老师

    天蓬老师2017-05-19 10:12:41

      1 var obj = {
      2     '1':{
      3         val:'red'
      4      },
      5      '99':{
      6         val:'yellow'
      7      },
      8      '37':{
      9         val:'blue'
     10      }
     11 };
     12
     13 function selirizeData(obj){
     14     var keys = Object.keys(obj).sort(function(a,b){
     15         return a-b;
     16     });
     17     var newObj = {};
     18     keys.forEach(function(val){
     19         newObj[val] = obj[val];
     20     });
     21     console.log(keys);
     22     console.log(newObj);
     23 }
     24 selirizeData(obj);

    Mula-mula gunakan Object.keys() untuk mendapatkan tatasusunan kunci objek, kemudian gunakan kaedah pengisihan tatasusunan untuk mengisih, kemudian gunakan kaedah foreach tatasusunan untuk menggelung melalui tatasusunan, mengisih data objek asal dan menulisnya pada objek baharu .

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:12:41

    var obj = { /* ..略.. */ }
    
    var res = Object.keys(obj).map(e => parseInt(e)).sort().map(e => obj[e]);

    balas
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-19 10:12:41

    Objek JS tidak tertib.
    Juga:
    {

    "11": "aaa"

    }
    11 bahagian dalam adalah rentetan.

    balas
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-19 10:12:41

    Pemikiran: forin所有的keyArray,排序Array.sort(),遍历Array,按顺序取值obj[key]

        var keys = [];
        for (var i in obj) {
            keys.push(i);
        }
        keys.sort();
        for (var i = 0; i < keys.length; i++) {
            var key = keys[i];
            console.log(obj[key]);
        }

    balas
    0
  • Batalbalas