假设我有以下字符串:
"22N"
"3X"
"-12X"
"12T"
"123123T"
Run Code Online (Sandbox Code Playgroud)
现在,我想将numbers和拆分alphabets成对数组:
[22, "N"]
[3, "X"]
[-12, "X"]
[12, "T"]
[123123, "T"]
Run Code Online (Sandbox Code Playgroud)
我试过的
var first = parseInt(input.substring(0, input.length - 1));
var last = input.slice(-1);
Run Code Online (Sandbox Code Playgroud)
这行得通,但是有什么更快的方法,因为我必须处理数百万个数据。
注意:alphabets是单个字符,始终为最后一个字符。
好吧,MDN接下来说一元加
一元加号是将某物转换为数字的最快且首选的方式
如果您相信,可以采取以下方法:
let tests = ["22N", "3X", "-12X", "12T", "123123T"];
const splitNumLetter = (str) => [+str.slice(0, -1), str.slice(-1)];
tests.forEach(s => console.log(splitNumLetter(s)));Run Code Online (Sandbox Code Playgroud)
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}Run Code Online (Sandbox Code Playgroud)
也许str.charAt(str.length - 1)比更快str.slice(-1)。您可以检查以下比较好的性能:https : //jsperf.com/charat-vs-index/5
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |