gpt4 book ai didi

jquery - 从 jQuery 数组中随机选择

转载 作者:行者123 更新时间:2023-12-01 01:35:02 25 4
gpt4 key购买 nike

我有一个 JSON 对象数组,我想从中获取几个随机值。我自己确实写了一些代码,最终它可以工作,但它甚至很难展示。

这就是我开始这个问题的原因。编码以下情况的好/好方法应该是什么?

我们有一个像这样的 JSON 数组:(实际上更长,但只是几个例子)

"features" : [
{
"attributes" : {
"OBJECTID" : 6,
"Type" : "Gebied"
}
},
{
"attributes" : {
"OBJECTID" : 70,
"Type" : "Water"
}
},
{
"attributes" : {
"OBJECTID" : 80,
"Type" : "Water"
}
},
{
"attributes" : {
"OBJECTID" : 91,
"Type" : "Land"
}
},
{
"attributes" : {
"OBJECTID" : 66,
"Type" : "Gebied"
}
},
{
"attributes" : {
"OBJECTID" : 78,
"Type" : "Land"
}
}
]

我们想要从该数组创建一个新的简单数组,其中包含,例如:

  • 2 个具有 "type"= "Gebied" 的功能
  • 1 个特征,“Type”=“Land”

实际上,要选择的特征数量(在本例中为 1 和 2)可以不同(一种类型最多 20 个)。

最重要的是,这些功能应该是随机选择的。

我很好奇你们会采取哪种方法,希望它有助于创建一个真正好的代码块来实现这一点,而不是我现在使用的近 100 条代码规则(甚至还没有完成)。

最佳答案

不确定这是否是您想要的,如果不是,我将删除它..但这里是:

var gebied = 0;
var id = new Array();

for(var i = 0; i < features.length; i++)
{
if(features[i].attributes.Type == 'Gebied')
{
// saves the gebied instance +1
id[gebied] = features[i].attributes.OBJECTID;
gebied++;
}
}

// pick random 2 from gebied array
var id1;
var id2;
var idListLength = id.length;

id1 = id[Math.floor(Math.random() * idListLength)];

if (idListLength > 1) {
do {
id2 = id[Math.floor(Math.random() * idListLength)];
} while(id1 == id2);
}

// if it's just one random pick from array
var id1 = id[Math.floor(Math.random() * id.length)];

更新

要让输入的给定数字确定要选择的随机 id 的数量:

function getRandomArrayElements(arr, count) {
var randoms = [], clone = arr.slice(0);
for (var i = 0, index; i < count; ++i) {
index = Math.floor(Math.random() * clone.length);
randoms.push(clone[index]);
clone[index] = clone.pop();
}
return randoms;
}

function pickRandom(count)
{
var gebied = 0;
var id = new Array();

for(var i = 0; i < features.length; i++)
{
if(features[i].attributes.Type == 'Gebied')
{
// saves the gebied instance +1
id[gebied] = features[i].attributes.OBJECTID;
gebied++;
}
}

return getRandomArrayElements(id, count);
}

示例:

pickRandom($('#random').val());

关于jquery - 从 jQuery 数组中随机选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16428030/

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