gpt4 book ai didi

javascript - 是否有任何恒定时间的解决方案来获取大对象的随 secret 钥?

转载 作者:太空宇宙 更新时间:2023-11-04 16:00:21 29 4
gpt4 key购买 nike

假设我有一个带有大量键的对象:

const myObject = {
"a": 1,
"b": 2,
"c": 3,
...
}

如果我存储了一个单独的 key 列表,我可以轻松地在恒定时间内获得一个随 secret 钥:

const keys = Object.keys(myObject);
const rand = keys[(Math.random() * keys.length)|0];

此外,random element from stream允许人们无需额外的结构即可获得这样的 key :

function pickRandomProperty(obj) {
var result;
var count = 0;
for (var prop in obj)
if (Math.random() < 1/++count)
result = prop;
return result;
}

但是这样的解决方案是线性的而不是恒定时间的。鉴于新的 ES6 规范,我想知道现在是否有一种方法可以仅通过 myObject 函数在恒定时间内获取随 secret 钥?

最佳答案

不,您的选择本质上仍然与您提到的相同:

  1. 获取属性名称数组(可变长度时间),然后随机索引到其中(恒定时间),或者

  2. 循环(可变时间)

在 ES2015 或 ES2016(或 ES2017,来吧)中,这并没有什么根本性的新东西。

关于javascript - 是否有任何恒定时间的解决方案来获取大对象的随 secret 钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42327267/

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