我在这里面临着相当大的挑战.我用拼音来区分某些中文"表达".
问题:
我怎么能在Firefox中按拼音排序?
有没有办法在IE 9和10中正确排序?(它们也得到网站的支持)
例:
根据翻译机构的说法,这就是单词的排序顺序.翻译如下:
拉丁字母表中的代词:
String.localeCompare: MDN Docs
根据我的理解,我将提供第二个参数,该String.localeCompare方法"告诉"按BCP 47格式拼音排序的方法应该是zh-CN-u-co-pinyin.
所以完整的代码应如下所示:
var arr = [ "??????", "????", "??????"];
console.dir(arr.sort(function(a, b){
return a.localeCompare(b, [ "zh-CN-u-co-pinyin" ]);
}));
Run Code Online (Sandbox Code Playgroud)
我希望这能按照我在数组中输入的顺序登录控制表达式,但输出不同.
在FX 27上,订单是:3,1,2
在Chrome中33:1,2,3
在IE 11中:1,2,3
注意:
拼音是将汉字的普通话发音转录成拉丁字母的官方语音系统.
似乎Dart没有提供默认机制(或者至少我找不到它)来解码HTML转义实体.
我想做的是转换例如.Q&A到Q&A.(这只是一个例子)
由于1.11.1版本,飞镖转换编码这些像这样.
从那里创建自定义转换器实现相当简单,但不会涵盖所有用例.如:如果<以十六进制值表示,该<怎么办?
有人有一些漂亮的解决方案
我在Web应用程序中常见的事情是从服务器请求资源并将其作为dart中的Map处理.
import 'dart:convert';
const String sampleJSON = '''
{
"member": {
"meaningOfLife": 42
}
}
''';
Map<String, dynamic> getResource() {
// do some magic
return JSON.decode(sampleJSON);
}
Run Code Online (Sandbox Code Playgroud)
我假设JSON解码Map中的所有键都是字符串,但显然我不知道值的类型.在检查模式下,这工作得相当好.
以强模式分析上面的代码将告诉我: Unsound implicit cast from dynamic to Map<String, dynamic>
处理此类投射警告的好策略是什么?
Map getResource() {
// do some magic
return JSON.decode(sampleJSON);
}
Run Code Online (Sandbox Code Playgroud)
以后这可能是个问题:Iterable<String> keys = getResource().keys会发出警告.
Map<String, dynamic> getResource() {
// do some magic
return new Map<String, dynamic>.from(JSON.decode(sampleJSON));
}
Run Code Online (Sandbox Code Playgroud)
它不会降低性能吗?我仍然会收到警告Map<String, dynamic> meaning = getResource()["member"];
感谢您的建议.