gpt4 book ai didi

javascript - 组成长度为 N 的字符串的最有效方法是什么,其中从 a-f、0-9 中选择随机字符

转载 作者:可可西里 更新时间:2023-11-01 02:58:31 24 4
gpt4 key购买 nike

需求是确定最有效的方法来渲染一个字符串,例如"#1a2b3c",其中"1a2b3c"是从集合

“abcdef0123456789”

[“a”、“b”、“c”、“d”、“e”、“f”、“0”、“1”、“2”、“3”、“4” , "5", "6", "7", "8", "9"]


为了比较结果的统一性,字符串.length应该正好是7,如上例所示。

确定过程结果时间的迭代次数应为 10000,如下面的代码所用。


我们可以从两个潜在的例子和基准开始调查。这些方法的基准应包含在答复的文本中。请注意,如果可以使用更准确的基准,或者可以改进问题的文本,请在评论中提出建议。相关:Can someone fluent in Javascript explain to me whats going on here SIMPLY

function randColor() {
return '#' + (function co(lor) {
return (lor += [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e', 'f'][Math.floor(Math.random() * 16)]) &&
(lor.length == 6) ? lor : co(lor);
})('');
}

console.time("random string recursion");

for (let i = 0; i < 10000; i++) {
randColor()
}

console.timeEnd("random string recursion");

console.time("random string regexp");

for (let i = 0; i < 10000; i++) {
"xxxxxx".replace(/x/g, function() {
return "abcdef0123456789".charAt(Math.floor(Math.random() * 16))
});
}

console.timeEnd("random string regexp");

什么是最有效的,其中效率定义为“速度”和“存储”所需的最少资源量,以实现返回具有 .lengthN 的字符串?

速度和存储的效率是否随着N的增加而降低?

最佳答案

另一种方法,假设字符在 [a-f0-9] 之间。它在速度和存储方面都很高效。

function randColor() {
return '#' + (Math.floor(Math.random() * 16777216)).toString(16).padStart(6, '0');
}

console.time("random string hexa");

for (let i = 0; i < 10000; i++) {
randColor()
}

console.timeEnd("random string hexa");

我使用 jsPerf 将其速度与问题中描述的方法进行了比较。这些是结果:https://jsperf.com/generating-hex-string-of-n-length

Chrome jsPerf Firefox jsPerf

关于javascript - 组成长度为 N 的字符串的最有效方法是什么,其中从 a-f、0-9 中选择随机字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46516234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com