原数据是这样的:
var list = ['abc123', 'abc11', 'abc2']
希望得到的排序结果是 abc2,abc11,abc123 就是先按照字符串排字符或文字,然后按照数字排
解决方案:
var list = ['abc123', 'abc11', 'abc2']
var list2 = []
list2 = list.sort(function(a, b) {
return a.localeCompare(b, 'zh-CN', { numeric: true })
console.log(list2)
如果需要先排序数字,再排序字符串
var list = ['abc123', 'abc11', 'abc2','c1','b1']
var list2 = []
list2 = list.sort(function(a, b) {
var an = a.match(/\d+(.\d+)?/g)[0];
var bn = b.match(/\d+(.\d+)?/g)[0];
if(parseFloat(an) > parseFloat(bn)) {
return 1
} else if(parseFloat(an) < parseFloat(bn)){
return -1
} else {
return a.localeCompare(b)
console.log(list2)
原数据是这样的:var list = ['abc123', 'abc11', 'abc2']希望得到的排序结果是 abc2,abc11,abc123 就是先按照字符串排字符或文字,然后按照数字排解决方案:var list = ['abc123', 'abc11', 'abc2']var list2 = []list2 = list.sort(function(a, b) { return a.localeCompare(b, 'zh-CN', { numeric: true })
在上篇文章给大家介绍了JavaScript sort数组
排序
方法和自我实现
排序
方法小结,用自己的方法实现了
数字
数组的
排序
。
当然,实际运用中,我还是会使用sort方法更加方便.但是,我上一篇博文,仅仅是实现了
数字
排序
,而srot方法默认可是能给字母实现
排序
的哦!而我的代码只能
排序
数字
,看起来还是弱弱的.
所以,我得加上能排字母甚至中文的
排序
方法.
$(function(){
var arr = ["Jack","Book","Fung",76,"Love","Mark","中国","china","phone","刘德华"];
console.log('原数组');
console
var arr = [
{AddRess: "广州南站", lng: 113.275824, lat: 22.994826, Mileage: "558"},
{AddRess: "长沙南站", lng: 113.071579, lat: 28.15323, Mileage: "883"},
{AddRess: "上海虹桥站", lng: 121.327012, lat: 31.200458, Mileage: "1892"},
{AddRess: "兰州西高铁站", lng: 103.758769
从上一篇文章里面我们已经知道了,需要通过sort函数,定义自己的
排序
比较函数。sort会回调这个函数,在
排序
时逐个比较元素。
那么问题来了,如果我想比较多个列,至少比较2列,使得其有效
排序
,
如果第2列是个
字符串
,这样写还行吗?不行。
字符串
相减,结果是NaN,not a number。那怎么办?
当然是写一个
字符串
排序
函数了。
先
看以下第一版:
function strcomp(a,b){
if( !(a instanceof Array) || !(b instanceof Array) ){ret
export function arraySortByName(list) {
if (list === undefined || list === null) return []
list.sort((a, b)...
var idx = -1;
var MAP = 'ABCDEFGHJKLMNOPQRSTWXYZ';
var boundaryChar = '驁簿錯鵽樲鰒餜靃攟鬠纙鞪黁漚曝裠鶸蜶籜鶩鑂韻糳';
if (!String.prototype.localeCompare) {
thro...
业务
要求
对录入的楼栋名称进行一个更符合用户想法的
排序
。
按照java自带的
字符串
排序
,是按照每一个字母的ASCII码顺序进行
排序
,代码如下:
List<String> strList = Arrays.asList(new String[]{"5栋", "7栋", "4栋", "15栋", "24栋", "涉外国际7栋", "涉外国际6栋", "B666栋", "B17栋", "B1栋","A45栋","A22栋"});
System.out.println(strList);
Colle
function order(words) {
return words.split(' ').sort((a, b) => a.match(/\d/) - b.match(/\d/)).join(' ');
function order(w...