let arr = ['a', 'b', 'a', 'c', 'c', 'd', 'b', 'f'] var newArr = [] var math for (var a in arr) { if (newArr.indexOf(arr[a]) == -1) { newArr.push(arr[a]) } } var i = Math.ceil(Math.random() * newArr.length) math = Math.floor(Math.random() * newArr.length) var newIndex = [] console.log(i) while (newIndex.length < i) { if (newIndex.indexOf(newArr[math]) == -1) { newIndex.push(newArr[math]) } }
时间: 2024-02-14 12:35:37 浏览: 68
javascript中new Array()和var arr=[]用法区别
这段代码的作用是从一个数组中随机选择几个不重复的元素。代码首先定义了一个数组 arr,然后创建了一个新数组 newArr 用于存储不重复的元素。接下来,使用 for 循环遍历 arr 数组,对于每个元素,如果它在 newArr 中不存在,就将它添加到 newArr 中。然后使用 Math.random() 方法生成一个随机数 i,表示从 newArr 中随机选择 i 个元素。接着定义一个数组 newIndex 用于存储选择的元素。使用 while 循环和 Math.random() 方法生成一个随机数 math,表示从 newArr 中随机选择一个元素。如果这个元素不在 newIndex 中,就将它添加到 newIndex 中。直到 newIndex 中包含 i 个元素为止。最后,代码输出变量 i 的值,即选择了几个元素。但是,代码中存在一些问题,比如 math 变量没有在 while 循环中更新,可能会导致死循环。
阅读全文