【问题标题】:need help on generating a non repeating array在生成非重复数组方面需要帮助
【发布时间】:2017-07-05 04:42:26
【问题描述】:

最近有一个面试测验,我在这里真的很挣扎。问题的步骤很少,但最后一步让我绞尽脑汁。

我创建了 4 组功能,主要是随机化: 1. 字母表(object_one) 2.整数(object_two) 3.实数(object_three) 4. 字母数字(object_four)

最后一个是根据我的 4 组对象创建一个随机数组。 例如: hisadfnnasd, 126263, assfdgsga12348fas, 13123.123,
lizierdjfklaasf, 123192u3kjwekhf, 89181811238,122, nmarcysfa900jkifh , 3.781, 2.11, ....

但这是我的最后一个代码:

function final_one(min,max,dec){
var obj = [object_one(min,max),object_two(min,max),object_three(min,max,dec),object_four(min,max)]; 
var output = "";
for (var i = 0; i < 10; i++) {
    output += obj[random(0,3)] + ", ";
}
return output;

}

我的输出将是这样的:

jkwnh1365624sp, 275995, jkwnh1365624sp, 43, jkwnh1365624sp, 275995, 275995, 43, 275995, 275995, 

数据不断重复。

请帮忙!

【问题讨论】:

  • 你应该标记你正在使用的编程语言(看起来像 javascript)
  • 数据不断重复,因为您的 obj 只有 4 个元素。所以当你做obj[random(0,3)]时,它基本上会从4个元素中随机选择一个元素并返回它。因为只有 4 个元素,所以看起来会重复(例如,某些元素会出现 3 次以上)。你想在你的final_one 函数中实现什么?基于提供的 4 个字符串的随机字符串?
  • 您在数组中有 4 个元素并正在寻找 10 个独特的元素...这怎么可能??
  • @ datnguyen yep,一个无需重复数据的随机字符串,例如:hisadfnnasd,126263,assfdgsga12348fas,13123.123,lizierdjfklaasf,123192u3kjwekhf,891811238,122,nmarcysfa900jkifh,3.781,211,.... 跨度>
  • @ELITE 是的,那是我的错误,但我不知道如何解决它..

标签: javascript arrays string for-loop random


【解决方案1】:

当你创建 obj 时,你执行所有 4 个函数一次:

var obj = [object_one(min,max),object_two(min,max),object_three(min,max,dec),object_four(min,max)]; 

object_one(min,max) 是一个函数调用。

这会创建一个包含 4 个元素的数组,如下所示:['v', 5, 3.14, 'x'] 正如@Dat 指出的那样,random(0,3) 选择其中一个元素。

你想要做的是有一个函数数组:

var obj = [object_one, object_two, object_three, object_four];

并随机执行其中一个函数(像这样):

obj[random(0,3)](min, max, dec);

有些函数没有 dec 参数,但在 javascript 中是可以的。

希望我正确理解了您的要求。

【讨论】:

  • 感谢您的帮助,但仍然在徘徊如何使用这 4 个函数扩展我的数据而不让它们重复?
  • 这样你得到一个随机选取的对象类型和一个随机选取的对象。您还需要什么来实现“扩展”?
猜你喜欢
  • 2021-09-10
  • 2010-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-02
  • 2011-08-09
  • 1970-01-01
相关资源
最近更新 更多