[js] 基于字符串中的数字进行字符串排序

#1

            function order(words) {
                return words.split(' ').sort((a, b) => a.match(/\d/) - b.match(/\d/)).join(' ');
            }

#2

            function order(words) {
                return words.split(" ").sort((a, b) => a.replace(/[^\d]/g, "") - b.replace(/[^\d]/g, "")).join(" ")
            }

#3

            function order(words) {
                var reg = /[^\d]+/g,
                    original = words.split(' '),
                    correlation = [],
                    reorder = [];
                if (words === '') {
                    return words;
                }
                original.forEach(function(ele, index) {
                    correlation[index] = {};
                    correlation[index]['i'] = index;
                    correlation[index]['v'] = Number(ele.replace(reg, ''));
                });
                correlation.sort(function(a, b) {
                    return a.v - b.v;
                });
                correlation.forEach(function(ele, index) {
                    reorder.push(original[ele.i]);
                });
                return reorder.join(' ');
            }

#test

            console.log(order("is2 Thi1s T4est 3a"));
            console.log(order("4of Fo1r pe6ople g3ood th5e the2"));
            console.log(order(""));

 

转载于:https://www.cnblogs.com/qingmingsang/articles/5282857.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值