当前位置: 首页 > article >正文

实现数组的乱序输出、实现数组去重

文章目录

  • 1 实现数组的乱序输出
  • 2 实现数组去重
    • 2.1 ES5:使用map存储不重复的数字
    • 2.2 ES6:使用数据结构集合

1 实现数组的乱序输出

  • Fisher-Yates洗牌算法
  • Fisher-Yates洗牌算法是一种高效的随机打乱数组或列表的算法。
  • 它的核心思想是从数组的末尾开始,逐步将每个元素与一个随机位置的元素交换,直到遍历完整个数组。
  • 这种方法确保了每个元素都有相同的概率出现在任何位置,从而实现真正的随机洗牌。
let arr = [1, 2, 3, 4, 5, 6, 7, 8];

function shuffle(arr) {
    for (let i = arr.length - 1; i >= 0; i--) {
        let change = Math.floor(Math.random() * (i + 1));
        [arr[i], arr[change]] = [arr[change], arr[i]];
    }
    return arr;
}
shuffle(arr);

2 实现数组去重

给定某无序数组,要求去除数组中的重复数字并且返回新的无重复数组。

2.1 ES5:使用map存储不重复的数字

const arr = [1, 2, 6, 5, 1, 5, 6, 8];

function uniqueArray(arr) {
    let map = {};
    let result = [];
    for (let i = 0; i < arr.length; i++) {
        if (!map.hasOwnProperty(arr[i])) {
            map[arr[i]] = 1;
            result.push(arr[i]);
        }
    }
    return arr;
}
uniqueArray(arr);

2.2 ES6:使用数据结构集合

Array.from(new Set(array));

http://www.kler.cn/a/531359.html

相关文章:

  • 自动驾驶---两轮自行车的自主导航
  • GWO优化SVM回归预测matlab
  • DeepSeek-R1 论文. Reinforcement Learning 通过强化学习激励大型语言模型的推理能力
  • 新到手路由器宽带上网设置八步法
  • JavaScript系列(54)--性能优化技术详解
  • 关于安卓greendao打包时报错问题修复
  • Java编程范式与计算机系统基础
  • Vue 图片引用方式详解:静态资源与动态路径访问
  • webpack传输性能优化
  • 【Word快速设置论文公式居中编号右对齐】
  • Visual Basic语言的移动应用开发
  • 【LLM】Layer Norm 和 RMS Norm 的区别?
  • C#常用744单词
  • Baklib推动数字化内容管理解决方案助力企业数字化转型
  • 深度学习-98-大语言模型LLM之基于langchain的代理create_react_agent工具
  • 二叉树--链式存储
  • 无用知识研究:std::initializer_list的秘密
  • 模型蒸馏(ChatGPT文档)
  • npm知识
  • Smart contract -- 钱包合约
  • 代码随想录算法训练营Day51 | 101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿
  • 【Docker项目实战】使用Docker部署MinIO对象存储(详细教程)
  • 17.3.5 添加水印
  • Linux环境下的Java项目部署技巧:项目部署
  • 评估分类模型性能:ROC曲线和AUC值
  • 麦芯 (MachCore) 应用开发教程 6:一台设备中多台电脑主从机的设置