cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Adakah terdapat cara untuk mengisih objek dalam js?

Sebuah objek json telah dikembalikan di latar belakang, dan pesanan telah diatur

Tetapi apabila saya menggunakan js to for in untuk melintasi objek ini seperti melintasi tatasusunan, hasilnya berbeza daripada objek asal Selepas menyemak maklumat, saya mendapati objek js tidak tertib. . Jadi adakah terdapat cara untuk melintasi objek ini secara berurutan? Atau bagaimana untuk mendapatkan sifat objek asal dalam susunan?

仅有的幸福仅有的幸福2823 hari yang lalu1130

membalas semua(10)saya akan balas

  • 为情所困

    为情所困2017-06-29 10:11:03

    ss.sort(function(a, b){
        return a.UserID > b.UserID;
    });

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-06-29 10:11:03

    var obj = {
        1 :[{userID:'1'}],
        2 :[{userID:'2'}],
        H :[{userID:'3'}],
        Z :[{userID:'4'}],
    };
    var objKeys = Object.keys(obj);
    objKeys.sort((a,b) =>{
        return a>b;
    }).map((val) => {
        console.log("userID "+ obj[val][0].userID)
    });
    / 输出
    // userID 1
    // userID 2
    // userID 3
    // userID 4

    balas
    0
  • 巴扎黑

    巴扎黑2017-06-29 10:11:03

    Tiada penyelesaian. Jika diisih, anda harus menggunakan tatasusunan. Atau dengan pelbagai kunci.

    Susunan dalam objek tidak dinyatakan dalam ES5, jadi enjin yang berbeza mungkin berbeza.

    Dalam ES6, Object.getOwnPropertyNames()Object.getOwnPropertySymbols() 以及等效于两者结合的 Reflect.ownKeys() akan dikeluarkan dalam susunan tertentu, tetapi ia bukan jawapan yang anda mahukan.

    Nampaknya struktur json disusun mengikut susunan nombor dan kamus Jika ini berlaku, anda boleh menyusunnya secara manual.

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-06-29 10:11:03

    1 Saya merasakan bahawa jika paparan halaman anda betul-betul dalam susunan pengisihan yang dikembalikan oleh bahagian belakang, maka anda tidak perlu mengisih, cuma paparkannya secara terus.
    2 Jika pesanan yang diingini berbeza daripada pesanan bahagian belakang, maka ia bergantung pada medan mana produk diisih dan dipaparkan. Kemudian anda mengisih berdasarkan medan ini dalam objek.
    Anda sepatutnya boleh mendapatkan apa yang anda mahukan.

    balas
    0
  • 世界只因有你

    世界只因有你2017-06-29 10:11:03

    // 对array 排序
     res.sort((a, b) => {
       if (a.UserID > b.UserID ) {  // 可以改成其他key
          return 1
       } else {
          return -1
       }
      })
    

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-29 10:11:03

    Oleh kerana objek json tidak mempunyai susunan, "perintah yang telah diatur" sebenarnya tidak wujud
    Jika bahagian hadapan ingin mengisih berdasarkan nama kunci, ia boleh mengeluarkan nama kunci, mengisihnya, dan kemudian mendapatkan kandungannya.

    balas
    0
  • 仅有的幸福

    仅有的幸福2017-06-29 10:11:03

    Memandangkan latar belakang mengembalikan data yang diisih, jika anda menggunakan ajax untuk meminta data, dataType: json, selepas anda menerima data, hanya melintasinya terus dan mengisinya dalam templat. Jika pesanan salah, saya rasa ia adalah kerana data yang anda dapat dari latar belakang adalah salah

    balas
    0
  • 代言

    代言2017-06-29 10:11:03

    Object.keys(objs).sort()可以获取到排好序的keys
    var objs = {
        f: {
            id: 2,
            name: '2'
        }, 
        a: {
            id: 3,
            name: '3'
        }, 
        c: {
            id: 1,
            name: '1'
        }
    };
    // 自定义排序规则,按对象的id排序
    var sortedObjKeys = Object.keys(objs).sort(function(a, b) {
        return objs[b].id - objs[a].id;
    });
    
    // 按默认排序规则,按对象的key排序
    var sortedObjKeys = Object.keys(objs).sort();
    
    for (var index in sortedObjKeys) {
        console.log(sortedObjKeys[index]);
        console.log(objs[sortedObjKeys[index]]);
        console.log('----------');
    }

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-29 10:11:03

    Jika anda ingin mempunyai nilai berjujukan, simpannya dalam tatasusunan, kemudian letakkannya dalam atribut json.

    balas
    0
  • 高洛峰

    高洛峰2017-06-29 10:11:03

    Object.keys(obj).sort(function() {
        // 为了以防万一,这里先排好键值顺序,代码省略,也可以直接用sort()默认排序
    }).map(function(v) {
        return obj[v]; // 根据原键名从obj中再找对应的项
    });

    Dengan cara ini, tatasusunan dikembalikan, yang berada dalam susunan tetap.

    balas
    0
  • Batalbalas