Javascript JS-基于原始数组随机创建新数组

Javascript JS-基于原始数组随机创建新数组,javascript,Javascript,我想创建一个函数,它接受一个数组,然后返回一个新数组,其中包含来自原始数组的任意数量的项。请注意,尽管它需要是原始数组中任意数量的项,但它们仍然需要处于相同的顺序。你知道怎么做吗 例如: const originalArr=[‘猫’、‘狗’、‘兔子’、‘仓鼠’、‘鹦鹉’]; /* 以某种方式使用Math.random,这样每次运行一个函数时,它都会返回一个数组,其中包含上面任意数量的项,例如。 [‘猫’、‘兔’] [‘狗’、‘兔子’、‘仓鼠’] [] [‘猫’、‘鹦鹉’] 等 */ 这是我的尝试

我想创建一个函数,它接受一个数组,然后返回一个新数组,其中包含来自原始数组的任意数量的项。请注意,尽管它需要是原始数组中任意数量的项,但它们仍然需要处于相同的顺序。你知道怎么做吗

例如:

const originalArr=[‘猫’、‘狗’、‘兔子’、‘仓鼠’、‘鹦鹉’]; /* 以某种方式使用Math.random,这样每次运行一个函数时,它都会返回一个数组,其中包含上面任意数量的项,例如。 [‘猫’、‘兔’] [‘狗’、‘兔子’、‘仓鼠’] [] [‘猫’、‘鹦鹉’] 等 */
这是我的尝试。看起来不错,但看起来不太好看。有更好的办法吗?更实用的JS风格

const petsArr=[“猫”、“狗”、“兔子”、“仓鼠”、“鹦鹉”]; 常量petsList=petsListLength=>=>{ 让currentIndex=Math.floorMath.random*petsListLength+1; 常数randomPetsList=[]; 而currentIndex您是否希望所有可能的子序列都具有相同的可能性?你想让它随机返回整个序列,还是只返回正确的子序列?闻起来像是一个零努力的家庭作业问题,试图自己解决任何一个问题。看,虽然这看起来像是一个做我的家庭作业的问题,但这看起来很简单,这几乎不是一个真正的学术作业。无论如何,解决这个问题的方法是:迭代数组,每次迭代生成随机整数[0,1]。如果1,将元素添加到新数组中,0不添加它。请随意放弃IIFE,它在这里对您没有任何帮助。与手动检查和增加标记相比,forEach看起来更干净