gpt4 book ai didi

javascript - 如何从对象中获取随机键数组,而不是完整列表?

转载 作者:行者123 更新时间:2023-11-28 04:02:43 24 4
gpt4 key购买 nike

例如,不是从具有 10 个键的对象中获取前 5 个键:

var keys = Object.keys(brain.layers[this.layer]).slice(0, 5);

我想随机获得 5 把 key 。我知道有一些笨重、漫长、迂回的方法,比如这样的:

function getRandomNumber(n1, n2) { ... }
var list = [];
var count = 0;

function choose(arr, count, list, max) {
for (let prop in arr) {
var choice = Math.round(getRandomNumber(0, 1));
if (choice === 1 && count < max && !list.includes(arr[prop])) {
list.push(arr[prop]);
count++;
}
}
if (count >= max) {
return list;
} else {
choose(arr, count, list, max)
}
}

但我想知道是否有更简单、更优雅的解决方案。

最佳答案

要真正获得真正的(伪)随机排序,请使用诸如就地随机排序之类的东西。

let arrRand=(a,i=a.length)=>{while(i){a.push(a.splice(Math.random()*i--|0,1)[0])}}
let keys = Object.keys(brain.layers[this.layer])
randSort(keys)
keys=keys.slice(0,5)

这需要一个数组和数组长度,但如果它是现代浏览器,您可以使用默认参数。警告它修改传入的数组。

关于javascript - 如何从对象中获取随机键数组,而不是完整列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46966010/

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