Ant-design: Penyortiran tabel berdasarkan panjang teks atau menurut abjad?

Dibuat pada 20 Mei 2016  ·  10Komentar  ·  Sumber: ant-design/ant-design

Penyortir tabel mengurutkan string teks berdasarkan panjangnya bukan berdasarkan abjad. Saya tidak tahu bagaimana ini dalam bahasa Cina tetapi di negara-negara euro amerika penyortiran teks dilakukan menurut abjad.

Komentar yang paling membantu

Akan lebih baik menggunakan fungsi JavaScript String#localeCompare:

penyortir: (a, b) => { kembalikan a.title.localeCompare(b.title)},

Semua 10 komentar

[{
  title: 'age',
  dataIndex: 'age',
  sorter: (a, b) => a.age - b.age,
}]

Anda dapat menentukan algoritme pengurutan Anda sendiri. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

untuk mengurutkan berdasarkan alpgavite:
function compareByAlph (a, b) { if (a > b) { return -1; } if (a < b) { return 1; } return 0; } ... sorter: (a, b) => compareByAlph(a.lastName, b.lastName),

Akan lebih baik menggunakan fungsi JavaScript String#localeCompare:

penyortir: (a, b) => { kembalikan a.title.localeCompare(b.title)},

thx @Leong21 untuk solusi cerdas ini

Saya masih tidak tahu bagaimana kita bisa mengurutkan kolom menggunakan Dates. Saya melakukan sesuatu seperti:

        sorter: (a, b) => {
          let dateA = !a.publishedAt
            ? new Date().getTime()
            : new Date(a.publishedAt).getTime();

          let dateB = !b.publishedAt
            ? new Date().getTime()
            : new Date(b.publishedAt).getTime();

          return [dateA, dateB].sort();
        }

Tapi ini tidak bekerja. publishedAt dapat berupa "" atau beberapa tanggal seperti "21 Mei 2017" atau "21 Mei 2017 15:05".

@ghoshnirmalya coba gunakan moment.js jika memungkinkan.

penyortir: (a, b) => { kembali momen(a.publishedAt).unix() - momen(b.publishedAt).unix()}

untuk menangani situasi di mana publishingAt == "" coba:
penyortir: (a, b) => { kembali momen(a.publishedAt || 0).unix() - momen(b.publishedAt || 0).unix() }

@Leong21 Terima kasih! Itu bekerja seperti yang diharapkan.

Kerja bagus @ leong21
sebenarnya Metode localeCompare() membandingkan dua string di lokal saat ini.
dan itu akan lebih baik
penyortir: (a, b) => { kembalikan a.title.localeCompare(b.title)},

@Leong21 Terima kasih! Ini harus dijelaskan atau disebutkan di sini: https://vue.ant.design/components/table/

Apakah halaman ini membantu?
0 / 5 - 0 peringkat