Tôi đang cố sử dụng chức năng localeCompare của JavaScript để sắp xếp chuỗi.Lực lượng địa phươngTính năng phân biệt chữ hoa chữ thường
Tôi đã rất ngạc nhiên bởi kết quả của chạy những dòng sau trong DevTools console:
"a".localeCompare("b") // returns: -1
"A".localeCompare("b") // returns: -1
Một thử nghiệm:
"b".localeCompare("a") // returns: 1
"B".localeCompare("a") // returns: 1
Ngay cả khi tôi cụ thể hơn về loại của tôi, tôi nhận được cùng một kết quả:
"a".localeCompare("b", { usage: "sort", sensitivity: 'variant' }) // -1
"A".localeCompare("b", { usage: "sort", sensitivity: 'variant' }) // -1
"b".localeCompare("a", { usage: "sort", sensitivity: 'variant' }) // 1
"B".localeCompare("a", { usage: "sort", sensitivity: 'variant' }) // 1
Tôi muốn sử dụng localeCompare để so sánh các chuỗi trong trường hợp nhạy cảm cách, vì vậy không nên "b" so với "a" và "B" so với "a" có kết quả ngược lại?
Tôi sẽ đề xuất cung cấp đối số 'vị trí ', nhưng ít nhất với' "vi" 'không tạo sự khác biệt. Cũng đã thử tùy chọn '" caseFirst "', nhưng điều đó cũng không tạo ra sự khác biệt, mặc dù nó nói * Triển khai không bắt buộc phải hỗ trợ thuộc tính này. * –
Xin lỗi, tôi không hiểu rõ sự nhầm lẫn của bạn, làm thế nào ' b' xảy ra trước 'A' theo thứ tự chữ cái? – Teemu
@Teemu Tôi đã thêm một ví dụ khác trong câu hỏi của tôi để hiển thị trường hợp ngược lại ... không nên "B" trước "a"? –