需要帮助生成非重复数组

时间:2017-07-05 04:42:27

标签: javascript arrays string for-loop random

最近有一个面试小测验,我真的在这里挣扎。有几个问题的步骤,但最后一个让我开裂我的大脑。

我创建的4套功能主要是随机化: 字母表(object_one) 2.整数(object_two) 3.实数(object_three) 4. alphanumerical(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, 

数据不断重复。

请帮忙!

1 个答案:

答案 0 :(得分:0)

创建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指出的那样,随机(0,3)选择其中一个元素。

您要做的是拥有一系列功能:

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

并随机执行其中一个函数(如下所示):

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

某些函数没有dec参数,但在javascript中没问题。

我希望我能正确理解你的要求。