创建具有唯一值的部分随机对象(Javascript)
我想从两个数组中构建一个对象,该对象对于第一个数组的每个不同值都应该有一个唯一的键名,并且从第二个数组中随机选择一个也是唯一的值创建具有唯一值的部分随机对象(Javascript),javascript,Javascript,我想从两个数组中构建一个对象,该对象对于第一个数组的每个不同值都应该有一个唯一的键名,并且从第二个数组中随机选择一个也是唯一的值 var keyNames = ['a','b','a','c','a'] var valuesToPickFrom = ['foo', 'bar', 'baz', 'qux', 'quux', 'waldo', 'fred'] 也就是说,预期的最终结果是: { 'a':'foo', 'b':bar', 'c':'baz' } // each value is uni
var keyNames = ['a','b','a','c','a']
var valuesToPickFrom = ['foo', 'bar', 'baz', 'qux', 'quux', 'waldo', 'fred']
也就是说,预期的最终结果是:
{ 'a':'foo', 'b':bar', 'c':'baz' } // each value is unique
但不是:
{ 'a':'foo', 'b':bar', 'c':'bar' } // repeated value, no good
如何做到这一点?这个问题太模糊了。因此,我将仅描述您的函数应该做什么:
所以我想要一个函数
你自己有没有尝试过?如果您遇到wallStackOverflow不是“解决方案”的站点,请发布您正在尝试的代码(特别是如果您所说的“解决方案”是指“代码准备好复制/粘贴”)。它也不是用来“思考”的。我相信他自己也试过,这就是为什么他在这里问这个问题。我觉得这是一个“有趣的”问题,当这是一个糟糕的问题时,这个问题总是受到反对票的欢迎。@melpomene来自您链接的页面:“如果您的问题通常涉及……特定的编程问题、软件算法或程序员常用的软件工具;这是一个实用的、可回答的问题,是软件开发所特有的……那么你就在正确的地方提出你的问题了!“我的问题符合所有这些标准。我删除了同位语。我……这就是我刚才做的。我很困惑……你问的不是一个“一般情况”,而是一个相当具体的问题。但这不是重点,因为你问题的主题不是问题。问题是你的问题(”我该怎么做?”)有效地要求人们为您编写代码。这是一个不具体的问题,而不是主题。不要使用排序来洗牌数组。这样做不起作用。我知道,这是一种幼稚的方法,我不会编写完整的解决方案。我将从答案中删除该示例。有很多方法可以做到这一点。旧方法应该如下所示:函数shuffle(o){for(var j,x,i=o.length;i;j=parseInt(Math.random()*i),x=o[--i],o[i]=o[j],o[j]=x);返回o;}。如果你想变得有趣,你甚至可以应用加密随机化。parseInt
对一个数字进行分析?这仍然是疯狂的谈话。是的,需要有人做完整的家庭作业。这是一个旧代码。它需要得到一个整数。它可以使用Math.floor()
取而代之。就我个人而言,我不会在生产中使用它,这足以证明概念。我会使用使用crypto.getRandomValues()
的东西。