Javascript 返回未定义的随机对象数组
我得到了这个随机数组函数,它应该从数组中选择一个范围,然后从随机选择的范围中随机选择,但它返回的是未定义的任何想法?我确实很好地收集了这个文件Javascript 返回未定义的随机对象数组,javascript,arrays,loops,object,Javascript,Arrays,Loops,Object,我得到了这个随机数组函数,它应该从数组中选择一个范围,然后从随机选择的范围中随机选择,但它返回的是未定义的任何想法?我确实很好地收集了这个文件 函数动态生成器(数组、名称){ //“名称”仅适用于一个数组 设arrayPush=[]; 试一试{ 让arrayJson=require(`../json/${array}`) //console.log(arrayJson)//返回true for(我在arrayJson中){ arrayJson.push(arrayPush[`${i}`] con
函数动态生成器(数组、名称){
//“名称”仅适用于一个数组
设arrayPush=[];
试一试{
让arrayJson=require(`../json/${array}`)
//console.log(arrayJson)//返回true
for(我在arrayJson中){
arrayJson.push(arrayPush[`${i}`]
console.log(arrayPush)
让randomScope=Math.floor(Math.random()*arrayPush.length);//从arrayPush中选择一个作用域数组
让randomObject=Math.floor(Math.random()*randomScope.length);
设ret=randomScope[randomObject]
返回ret;
}
}捕获(e){
console.log('DynamicGen返回错误,无论是否为计划错误')
设rand=Math.floor(Math.random()*name.length);
设ret=name[rand]
返回ret;
}
}
for
循环存在许多问题。但这种循环是不必要的。它只是制作了一个不必要的arrayJson
副本randomScope
时忘记为数组编制索引函数动态生成器(数组、名称){
试一试{
让arrayJson=require(`../json/${array}`)
让randomScope=arrayJson[Math.floor(Math.random()*arrayJson.length)];//从arrayJson中选择一个作用域数组
让randomObject=Math.floor(Math.random()*randomScope.length);
设ret=randomScope[randomObject]
返回ret;
}捕获(e){
console.log('DynamicGen返回错误,无论是否为计划错误')
设rand=Math.floor(Math.random()*name.length);
设ret=name[rand]
返回ret;
}
}
这是向后的:arrayJson.push(arrayPush[`i}`])
它应该是arrayPush.push(arrayJson[i])
在循环的第一次迭代中返回。代码应该在循环之后。上面有几个问题。1.Barmar指出的一个(arrayJson
它应该在哪里arrayPush
)。2.没有理由使用arrayPush[`i}`]
,只需arrayPush[i]
即可。3.你不能在任何地方声明i
。4. for in
通常不是循环数组的好选择;查看原因和其他更好的选择。5.另一个Barmar指出(return
在没有条件的循环中总是在第一次通过时结束循环)。实际上根本不需要arrayPush
——它只是arrayJson
随机范围的副本。长度没有任何意义randomScope
是一个数字,没有长度。