我正在使用sort()
方法制作按字母顺序排列的列表,但似乎无法正常工作
那是我得到的数据的一个例子
address: " P.O. BOX : 3625, POSTAL CODE : 112, RUWI. ABOVE ELITE JEWELLERY SHOP BUILDING, 2ND"
area_id: "27"
area_name: "Ruwi"
city_name: "Muscat"
clinic_hours: "SAT-THU 9:00AM to 1:00PM 5:00PM to 9:00PM,FRI CLOSED"
hosp_id: null
hospital_name: null
id: "132"
insurance_companies: "None"
lat: "23.59032790"
longi: "58.54473540"
name: " AL WARDAH MEDICAL & DENTAL CLINIC"
phone: "24832011"
services: " GENERAL MEDICINE, GYNAECOLOGY, EYE, ENT, SKIN, PAEDIATRICS.,GENERAL DENTAL CARE & SERVICES."
spec: "Dentistry,General Practitioner"
spec_id: "70,75"
这是代码
// sorting data
this.Clinics = Data.sort(function(a, b){
return a.name.localeCompare(b.name);
})
答案 0 :(得分:2)
localeCompare
默认情况下区分大小写,大写字母位于小写字母之前。
您可以传递一个选项对象,该对象将比较设置为base
,因此a==A
但这也需要语言环境,
return a.name.localeCompare(b.name, 'en', {'sensitivity': 'base'});
或者您可以在比较函数中手动toLowercase
或toUppercase
字符串
return a.name.toLowercase().localeCompare(b.name.toLowercase());
这是在存储或呈现数据之前清理数据的方便之处,但是如果您对源代码的控制为零,以上内容将使您满意。