Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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_Sorting_Case Sensitive - Fatal编程技术网

如何在javascript中排序

如何在javascript中排序,javascript,sorting,case-sensitive,Javascript,Sorting,Case Sensitive,如果我有这样一个数组: var tab = ['1185 Design','3 D Exhibits','44Doors', '4Concepts','ABC Data','acceleration']; 我想对它进行排序,使小写字母'a'元素排在大写字母'a'元素之前。使用方法和 var tab=['1185设计','3d展示','nb','N','cd','44Doors','4concept','ABC数据','acceleration']; tab.排序(功能(a、b){ 返回sor

如果我有这样一个数组:

var tab = ['1185 Design','3 D Exhibits','44Doors', '4Concepts','ABC Data','acceleration'];
我想对它进行排序,使小写字母
'a'
元素排在大写字母
'a'
元素之前。

使用方法和

var tab=['1185设计','3d展示','nb','N','cd','44Doors','4concept','ABC数据','acceleration'];
tab.排序(功能(a、b){
返回sortFn(a,b);
});
函数sortFn(a,b){
//如果两者相等,则返回0
如果(a==b)返回0;
//如果第一个字符相等,则调用剩余的相同函数(递归)
if(a.charAt(0)=b.charAt(0))返回sortFn(a.slice(1),b.slice(1))
//基于该返回值检查小写或大写
if(/^[a-z]/.test(a.charAt(0))&&&/^[a-z]/.test(b.charAt(0))返回-1;
if(/^[a-z]/.test(b.charAt(0))&&&/^[a-z]/.test(a.charAt(0))返回1;
//正常比较函数
返回a.localeCompare(b);
}
控制台日志(选项卡)您可以将其与大小写反转一起使用

//要排序的数组
var列表=['1185设计','3D展示','44门','4概念','ABC数据','加速'];
//临时数组保存具有位置和排序值的对象
var mapped=list.map(函数(el,i){
返回{index:i,value:el.split('').map(函数(a){
var b=a.toUpperCase();
返回a==b?a.toLowerCase():b;
}).加入(“”)};
});
//对包含缩减值的映射数组进行排序
映射.排序(函数(a,b){
返回+(a.value>b.value)| |+(a.value===b.value)-1;
});
//用于生成订单的容器
var result=mapped.map(函数(el){
返回列表[el.index];
});

控制台日志(结果)请添加一些您尝试过的代码和想要的结果。请查看一些有用的提示-问一个好问题可以提高您获得答案的机会。但同样重要的是,在发布问题之前,你必须先搜索并做一些研究。还包括您尝试过的内容,并指出您遇到的问题。对不起,我是新手coding@user3555971:您的问题解决了吗?您需要什么结果?第一个字母以a-z开头的项目应位于代码段a-ZHere之前。var optionTexts=[]$(“.options li”).each(函数(){optionText.push($(this.text())});console.log('=============');sort(函数(a,b){返回b.localeCompare(a);});console.log('sorted'+optionexts);上面的解决方案对我来说不正常。@user3555971共享
optionText
值非常感谢您的回复,它可以按如下方式排序:下一个ABC数据,然后是小写字母b项,然后是大写字母b项组合在一起。非常感谢男士:)我可以从哪里开始学习这些功能。你推荐什么课程吗?非常感谢你的解决方案。