gpt4 book ai didi

javascript - 使用 localeCompare 在 Javascript 中按拼音进行中文排序?

转载 作者:可可西里 更新时间:2023-11-01 02:24:55 25 4
gpt4 key购买 nike

我在这里面临着相当大的挑战。我要按拼音对某些中文“表达”进行排序。

问题:
如何在 Firefox 中按拼音排序?
有没有办法在 IE 9 和 10 中正确排序? (网站也要支持)

示例:

  1. 财经通讯公司
  2. 财务顾问
  3. 特性及按揭

根据翻译机构的说法,这就是单词的排序顺序。译文如下:

  1. 金融传播机构
  2. 财务咨询
  3. 房地产和抵押贷款

拉丁字母发音:

  1. 才〈静〉传〈xun〉公〉si
  2. 才jing古文
  3. fang‖di‖chan‖ji‖an‖jie

String.localeCompare: MDN Docs

据我所知,我要为 String.localeCompare 方法提供第二个参数,该方法“告诉”按 BCP 47 格式拼音排序的方法,应该是 zh-CN -u-co-拼音.

所以完整的代码应该是这样的:

var arr = [ "财经传讯公司", "财经顾问", "房地产及按揭"];
console.dir(arr.sort(function(a, b){
return a.localeCompare(b, [ "zh-CN-u-co-pinyin" ]);
}));

jsFiddle working example

我希望这会按照我在数组中输入它们的顺序记录以控制台表达式,但输出不同。

在 FX 27 上,顺序是:3、1、2
在 Chrome 33 中:1、2、3
在 IE 11 中:1、2、3

注意:

Pinyin is the official phonetic system for transcribing the Mandarin pronunciations of Chinese characters into the Latin alphabet.

最佳答案

这适用于 Chrome:

const arr = ["博","啊","吃","世","中","超"]
arr.sort((x,y)=>x.localeCompare(y, 'zh-CN'))

关于javascript - 使用 localeCompare 在 Javascript 中按拼音进行中文排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22907288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com