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
    是一个数字,没有长度。