假设我有一个值为“this-is-the-whole-string-value-33297af405e6”的字符串。我想从这个字符串中提取最后一个数字部分。我正在寻找的结果只是“33297af405e6”。我怎样才能得到这个值?
为了获得最佳性能,没有什么比搜索字符串更快的了。如果您处理大量 JSON 数据,这可能至关重要。它比分割字符串快 3 倍以上:
const str = 'this-is-the-whole-string-value-33297af405e6';
const found = str.substring(str.lastIndexOf('-') + 1);
console.log(found);
并对不同的解决方案进行基准测试:
` Chrome/120
----------------------------------------------------------------
lastIndexOf 1.00x | x10000000 142 143 143 149 152
split + at 1.14x | x10000000 162 167 167 167 171
split + pop 1.42x | x10000000 201 204 204 205 214
regex 12.01x | x10000000 1706 1735 1736 1755 1764
----------------------------------------------------------------
https://github.com/silentmantra/benchmark `
<script benchmark data-count="10000000">
const str = "this-is-the-whole-string-value-33297af405e6";
// @benchmark split + pop
str.split('-').pop();
// @benchmark split + at
str.split('-').at(-1);
// @benchmark regex
str.match(/[^-]+$/)[0]
// @benchmark lastIndexOf
str.substring(str.lastIndexOf('-') + 1);
</script>
<script src="https://cdn.jsdelivr.net/gh/silentmantra/benchmark/loader.js"></script>