JavaScript 生成随机整数并去重排序的完整示例

作者:纸飞机时间:2026-10-22 07:41:59浏览:375

本文通过一个具体实例,演示如何使用 JavaScript 生成指定数量的随机整数,并利用遍历法结合 indexOf 进行去重,最后采用冒泡排序算法对结果进行升序排列。文章详细解析了 parseInt 与 Math.random 的组合用法、数组 push 操作及 join 输出技巧,提供了完整的可运行代码与 Chrome 控制台测试结果,适合初学者理解基础数据结构处理流程。

问题背景与核心思路

近期有同学提出一个问题,希望整理思路供参考。该问题的核心在于考察数据的去重与排序处理。下面直接展示题目内容。

问题背景与核心思路

随机数生成与去重实现


function input(req){
if(req<=100){
var arr=[],arr1=[];
for(var i=0;i<req;i++){
var num=parseInt(Math.random()*(1000-1)+1);
arr.push(num);
if(arr1.indexOf(arr[i])==-1)
arr1.push(arr[i]);

}
for(var n=0;n<arr1.length-1;n++){
for(var m=n+1;m<arr1.length;m++){
if(arr1[n]>arr1[m]){
var temp=arr1[n];
arr1[n]=arr1[m];
arr1[m]=temp;
}
}
}

console.log(arr.length);
console.log(arr.join(' ')); 

console.log(arr1.length);
console.log(arr1.join(' ')); 
}else{
alert("不好意思,你输入的数已经大于100了");
} 
}

在排序算法方面,常见的实现方式包括冒泡排序、快速排序、插入排序、希尔排序、选择排序、归并排序、堆排序、基数排序、计数排序以及桶排序等。

针对数组去重,常用的技术手段涵盖遍历数组、利用对象键值对、基于数组下标判断、排序后移除相邻重复项以及优化遍历数组等方法。

本题的排序环节选用最基础的冒泡排序法。其核心逻辑是通过多次比较相邻的两个元素,若前者大于后者则交换位置,经过多轮迭代直至整个序列顺序正确。

去重环节同样采用基础的遍历数组策略。具体思路是新建一个目标数组,若当前元素未存在于新数组中,则将其加入。该方法实现简单直接,主要依赖 JavaScript 的 indexOf() 方法。indexOf() 原本用于返回指定字符串在字符中首次出现的位置,当检索的字符串不存在时,该方法返回 -1,这一特性恰好符合去重判断的需求。

题目具体要求为:生成 N 个介于 1 到 1000 之间的随机整数,其中 N 的值不超过 100。

关于整数的获取,需要用到 parseInt() 方法。

关于随机数的生成,需借助 Math.random() 函数。

结合上述两点,生成 1 到 1000 之间随机整数的有效组合代码为:var num=parseInt(Math.random()*(1000-1)+1);。

将数据填入数组需使用 arr.push() 方法。随后判断原数组中的元素是否已存在于新数组 arr1 中,若 indexOf(arr[i]) 返回 -1,则执行 arr1.push(arr[i]) 将其加入。

冒泡排序与结果输出

完成数据填充后,进入排序阶段,此处依然使用简单的冒泡排序。随机数组的元素个数由数组长度决定,即 arr.length。

输出结果时,若需以空格分隔各元素,可使用 join(' ') 方法。

在 Chrome 浏览器的开发者工具(F12)中运行上述代码,控制台输出结果如下:

问题背景与核心思路

经过去重和排序处理后的最终结果。

问题背景与核心思路

以上关于 JavaScript 排序与重组的实例讲解内容到此结束,希望能为读者提供有益参考,并欢迎大家继续支持本站。

作者最新文章