Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 排序非拉丁字符串不起作用_Javascript_Underscore.js - Fatal编程技术网

Javascript 排序非拉丁字符串不起作用

Javascript 排序非拉丁字符串不起作用,javascript,underscore.js,Javascript,Underscore.js,我对数组对象的非拉丁字符串排序有问题。 我在我的代码中使用了这个\uu.sortBy(object,'name')来按名称排序。 以下是我的波斯语文本数组: [['id':1,'name':'ب'],['id':2,'name':'ج'],['id':3,'name':'اما']] 排序后的输出应如下所示: ['id':3,'name':'اما'],['id':1,'name':'ب'],['id':2,'name':'ج'] 但它没有给出这个输出。有人知道这一点吗?您可以使用它来获取字

我对数组对象的非拉丁字符串排序有问题。 我在我的代码中使用了这个
\uu.sortBy(object,'name')
来按名称排序。 以下是我的波斯语文本数组:

[['id':1,'name':'ب'],['id':2,'name':'ج'],['id':3,'name':'اما']]
排序后的输出应如下所示:

['id':3,'name':'اما'],['id':1,'name':'ب'],['id':2,'name':'ج']
但它没有给出这个输出。有人知道这一点吗?

您可以使用它来获取字符的Unicode值

arr.sort((a, b) => a.name.codePointAt(0) - b.name.codePointAt(0))
var-arr=[{
“id”:1,
“姓名”:“ب”
}, {
“id”:2,
“姓名”:“ج”
}, {
"id":3,,
“姓名”:“姓名”
}];
var sortedar=arr.sort((a,b)=>a.name.codePointAt(0)-b.name.codePointAt(0));

document.body.innerHTML=''+JSON.stringify(sortedar,0,4)首先需要更正数组。它的格式无效

var a = [{'id':1,'name':'ب'},{'id':2,'name':'ج'},{'id':3,'name':'اما'}];

a.sort(function(a, b) {

  if (a.name > b.name) {

    return true;
  }
});
var arr = [{'id':1,'name':'ب'},{'id':2,'name':'ج'},{'id':3,'name':'اما'}];
arr.sort(function(first, second ) {
    return first.name.localeCompare(second.name);
});
输入
[{'id':1,'name':'ب'},{'id':2,'name':'ج'},{'id':3,'name':'ا㶋}]



输出
[{'id':3,'name':'ا},{'id':1,'name':'ب},{'id':2,'name':'ج}]
最好使用标准字符串函数localeCompare来比较非英语字符串:


我是唯一一个被弄糊涂的人,为什么人们会把波斯语字符串的排序称为“排序拉丁语”?我很确定波斯语字符不是拉丁语。。。