【发布时间】:2020-07-19 06:35:10
【问题描述】:
我有一个这样的数组,其中包含大约 30 万个条目。
var data = [
{name: "peter", city: "bauru", weightage: 20},
{name: "marcos", city: "belo", weightage: 15},
{name: "rio", city: "salvador", weightage: 20},
{name: "halter", city: "natal", weightage: 15},
{name: "ron", city: "belem", weightage: 15},
{name: "dominic", city: "santos", weightage: 15},
{name: "john", city: "bauru", weightage: 20},
{name: "ros", city: "natal", weightage: 15},
{name: "nick", city: "salvador", weightage: 20},
{name: "david", city: "santos", weightage: 15},
{name: "ison", city: "belem", weightage: 15},
{name: "eddy", city: "belo", weightage: 15},
....
]
我在一个数组中有条目,每个不同的用户都位于这 6 个城市下。每个城市都有权重值。所以我要根据权重值随机挑选60000条数据。
我尝试首先分离数据并从 bauru 中选择 20% 的数据,从 belo 中选择 15% 的数据等等,但这种手动操作并不是一个好方法。
我不知道在 javascript 上写这个。
预期输出:我想要 60k 数据,其中 20% 的值来自 bauru,15% 来自贝洛,20% 来自萨尔瓦多,15% 来自 natal,15%来自贝伦,15% 来自桑托斯。总数为 60k。如果任何城市数据总计没有出现 15% 或 20%,则从 20% 和 15% 中选择更多数据。假设 60k 数据的 15% = 7200,任何城市的总值只有 500,那么我们从数据量大的不同城市的 20% 或 15% 中挑选其余数据
【问题讨论】:
-
你有没有尝试过?
-
可以添加一些随机数据吗?
-
@NinaScholz 我添加了更多数据。在这个唯一的用户名和城市都被改变了。你可以说它是一个来自少数几个城市的用户列表,其中有 30 万个条目。其中我想要 60k 数据。现在 60k 数据是权重值的组合
标签: javascript arrays ecmascript-6