数组排序、取字符串中的数字(codewars练习)

Your task is to sort a given string. Each word in the String will contain a single number. This number is the position the word should have in the result.

Note: Numbers can be from 1 to 9. So 1 will be the first word (not 0).

If the input String is empty, return an empty String. The words in the input String will only contain valid consecutive numbers.

For an input: "is2 Thi1s T4est 3a" the function should return "Thi1s is2 3a T4est"

将所给字符串中按照其所含数字升序重新排序。

首先想到是将字符串转为数组,按照str.split(" ")方法分割为字符串数组,再获取字符串中的数字,按其升序排列。思路简单清晰。

function order(words)

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

(通过match方法获取0-9的数字字符)

function(a,b){return a.replace(/[^0-9]/ig,"")-b.replace(/[^0-9]/ig,"")} (通过replace方法将数字以外的字符摘除)

match()方法返回结果匹配的数组,且参数为正则表达式。

replace()方法匹配到符合正则表达式的值后,替换为第二个参数,结果返回替换后的字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值