Rumah > hujung hadapan web > tutorial js > Kaedah Juery untuk menyelesaikan pengisihan bahasa Cina dan julat aksara_jquery

Kaedah Juery untuk menyelesaikan pengisihan bahasa Cina dan julat aksara_jquery

WBOY
Lepaskan: 2016-05-16 16:00:36
asal
1558 orang telah melayarinya

Contoh dalam artikel ini menerangkan kaedah Juery untuk menyelesaikan pengisihan dan julat aksara Cina penyusun jadual. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:

penyusun jadual ialah pemalam pengisihan jadual yang sangat baik di kalangan pemalam jQuery. Saya percaya semua orang telah menggunakannya atau mendengarnya, jadi saya tidak akan memperkenalkannya terlalu banyak di sini. Untuk maklumat lanjut, anda boleh menyemaknya laman web: http://tablesorter .com/docs/ (demo agak lengkap).

Dalam beberapa projek yang dibangunkan menggunakan penyusun jadual, dua jenis masalah pengisihan ditemui, seperti berikut:

Masalah pertama ialah aksara Cina tidak boleh diisih Ini kerana apabila mengisih aksara, saiz aksara dibandingkan menggunakan nilai unikod adalah seperti berikut:

Kod Js

function sortText(a,b) {
  return ((a < b) &#63; -1 : ((a > b) &#63; 1 : 0));
};
function sortTextDesc(a,b) {
  return ((b < a) &#63; -1 : ((b > a) &#63; 1 : 0));
};
function sortText(a,b) {
  return ((a < b) &#63; -1 : ((a > b) &#63; 1 : 0));
};
function sortTextDesc(a,b) {
  return ((b < a) &#63; -1 : ((b > a) &#63; 1 : 0));
};
Salin selepas log masuk

Hasil yang kami mahu ialah mengisih mengikut pinyin Cina, jadi kami boleh mengubah suai kod kepada kod berikut:

Kod Js

function sortText(a,b) {
  return a.localeCompare(b);
};
function sortTextDesc(a,b) {
  return b.localeCompare(a);
};
function sortText(a,b) {
  return a.localeCompare(b);
};
function sortTextDesc(a,b) {
  return b.localeCompare(a);
};
Salin selepas log masuk

Kaedah localeCompare ialah kaedah yang disertakan dengan JS, seperti namanya, kaedah ini membandingkan saiz aksara berdasarkan kawasan semasa, bagaimanapun, kaedah ini tidak boleh mengendalikan aksara polifonik.

Masalah kedua ialah data berangka yang melebihi julat tidak boleh diisih Ini kerana nilai data diherotkan semasa penukaran jenis angka, contohnya:

Kod Js

alert(parseFloat('9999999999999999'));  // 10000000000000000
alert(parseFloat('10000000000000001')); // 10000000000000000
alert(parseFloat('10000000000000004')); // 10000000000000004
alert(parseFloat('10000000000000005')); // 10000000000000004
alert(parseFloat('10000000000000006')); // 10000000000000006
alert(parseFloat('9999999999999999'));  // 10000000000000000
alert(parseFloat('10000000000000001')); // 10000000000000000
alert(parseFloat('10000000000000004')); // 10000000000000004
alert(parseFloat('10000000000000005')); // 10000000000000004
alert(parseFloat('10000000000000006')); // 10000000000000006
Salin selepas log masuk

Penyimpangan sedemikian akan menjadikan keputusan pengisihan tidak tepat Untuk mengelakkan masalah ini, nilai asal tidak boleh digunakan untuk perbandingan, sebaliknya, pemberat harus diperkenalkan dari kiri ke kanan, yang sepadan dengan setiap angka nilai menurun. Kemudian nilai baru dikira berdasarkan berat dan nilai asal digunakan untuk perbandingan.

Kod Js

this.formatFloat = function(s) {    
  // TODO    
  var i = parseFloat(s);    
  return (isNaN(i)) &#63; 0 : i;    
};
Salin selepas log masuk

Saya harap artikel ini akan membantu pengaturcaraan jQuery semua orang.

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan