Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengisih Tatasusunan Berbilang Medan dalam JavaScript?

Bagaimana untuk Mengisih Tatasusunan Berbilang Medan dalam JavaScript?

Patricia Arquette
Lepaskan: 2024-12-24 02:18:10
asal
548 orang telah melayarinya

How to Sort a Multi-Field Array in JavaScript?

Isih Tatasusunan Berbilang Medan

Dalam soalan terdahulu, kami menerokai isihan tatasusunan berdasarkan satu medan. Walau bagaimanapun, senario dunia sebenar selalunya memerlukan pengisihan pada berbilang kriteria. Artikel ini menunjukkan cara menyesuaikan pendekatan itu untuk pengisihan berbilang medan.

Contoh Khusus: Bandar dan Harga

Pertimbangkan tatasusunan Rumah berikut yang perlu kita isi mengikut bandar (menaik) dan kemudian harga (menurun):

var homes = [
    { "h_id":"3", "city":"Dallas", "state":"TX", "zip":"75201", "price":"162500" },
    { "h_id":"4", "city":"Bevery Hills", "state":"CA", "zip":"90210", "price":"319250" },
    { "h_id":"6", "city":"Dallas", "state":"TX", "zip":"75000", "price":"556699" },
    { "h_id":"5", "city":"New York", "state":"NY", "zip":"00010", "price":"962500" }
];
Salin selepas log masuk

Isih berbilang medan Pendekatan

Untuk mengisih berdasarkan berbilang medan, kita boleh menggunakan pendekatan pengisihan berantai yang melibatkan membandingkan nilai medan yang dipilih, satu demi satu, sehingga kita menemui perbezaan.

Pelaksanaan

data.sort(function (a, b) {
    return a.city.localeCompare(b.city) || b.price - a.price;
});
Salin selepas log masuk

Penjelasan

  • Kaedah localeCompare digunakan untuk membandingkan nilai bandar .
  • Jika nilai bandar adalah sama, kita tolak nilai harga b daripada a untuk mengisih harga dalam susunan menurun.
  • Susun atur yang terhasil diisih mengikut bandar (menaik) dan kemudian harga (menurun).

Output

[
  {
    "h_id": "3",
    "city": "Dallas",
    "state": "TX",
    "zip": "75201",
    "price": "162500"
  },
  {
    "h_id": "6",
    "city": "Dallas",
    "state": "TX",
    "zip": "75000",
    "price": "556699"
  },
  {
    "h_id": "4",
    "city": "Bevery Hills",
    "state": "CA",
    "zip": "90210",
    "price": "319250"
  },
  {
    "h_id": "5",
    "city": "New York",
    "state": "NY",
    "zip": "00010",
    "price": "962500"
  }
]
Salin selepas log masuk

Pendekatan ini menyediakan penyelesaian yang fleksibel untuk menyusun tatasusunan pada berbilang medan. Ia boleh diubah suai dengan mudah untuk menampung sebarang bilangan kriteria pengisihan, menjadikannya sesuai untuk pelbagai jenis senario manipulasi data.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan Berbilang Medan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan