يقوم فارز الجدول بفرز سلاسل النص حسب الطول وليس أبجديًا. لا أعرف كيف يتم ذلك في اللغة الصينية ولكن في البلدان الأمريكية الأوروبية يتم فرز النص أبجديًا.
[{
title: 'age',
dataIndex: 'age',
sorter: (a, b) => a.age - b.age,
}]
يمكنك تحديد خوارزمية الفرز الخاصة بك. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
للفرز حسب 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),
سيكون من الأفضل استخدام دالة JavaScript String # localeCompare:
فارز: (a، b) => {return a.title.localeCompare (b.title)} ،
تشك @ Leong21 لهذا الحل الذكي
ما زلت غير قادر على معرفة كيف يمكننا فرز الأعمدة باستخدام التواريخ. أفعل شيئًا مثل:
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();
}
لكن هذا لا يعمل. يمكن أن يكون publishedAt
إما "" أو تاريخًا ما مثل "21 مايو ، 2017" أو "21 مايو ، 2017 3:05 مساءً".
ghoshnirmalya حاول استخدام moment.js إن أمكن.
فارز: (a، b) => {return moment (a.publishedAt) .unix () - moment (b.publishedAt) .unix ()}
للتعامل مع الموقف الذي تم نشره عند النشر:
فارز: (a، b) => {return moment (a.publishedAt || 0) .unix () - moment (b.publishedAt || 0) .unix ()}
@ Leong21 شكرا لك! يعمل كما هو متوقع.
عمل جيد @ leong21
في الواقع ، تقارن طريقة localeCompare () سلسلتين في الإعدادات المحلية الحالية.
وسيكون أفضل
فارز: (a، b) => {return a.title.localeCompare (b.title)} ،
@ Leong21 شكرا لك! يجب توضيح ذلك أو ذكره هنا: https://vue.ant.design/components/table/
التعليق الأكثر فائدة
سيكون من الأفضل استخدام دالة JavaScript String # localeCompare:
فارز: (a، b) => {return a.title.localeCompare (b.title)} ،