js生成固定范围的随机数且不重复

我是用在VUE的项目中,lowRange为范围最小值,highRange为范围最大值,numArry为你要保存随机数的数组
代码如下:

changeNum() {
            if (this.stop) {
                return
            }
     
            this.timeOut = setTimeout(() => {
                if (this.stop) {
                    this.numArry = this.deleteTheSameNum(this.lowRange, this.highRange, this.numArry)
                    if (this.timeOut) {
                        this.timeOut = null
                        clearTimeout(this.timeOut)
                    }
                    return
                }
                for (let i = 0; i < this.numArry.length; i++) {
                    this.$set(this.numArry, i, parseInt(Math.random() * this.highRange + this.lowRange))
                    // this.numArry[i].num = parseInt(Math.random() * this.highRange + this.lowRange)
                }
                this.changeNum();
            }, 100);
        },

 deleteTheSameNum(start, end, arry) {
            if (!Array.isArray(arry)) return
            let newSet = new Set(arry)
            if (newSet.size === arry.length) return arry
            while (newSet.size !== arry.length) {
                newSet.add(parseInt(Math.random() * end + start))
            }
            return [...newSet]
        }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。