JavaScript数组去重,大小排序的两种方法

这篇具有很好参考价值的文章主要介绍了JavaScript数组去重,大小排序的两种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

方法有很多种,本文列举其中两种

声明一个数组

  var arr = [5,4,3,2,1,5,3];

数组去重

1:利用ES6中的 Set 方法去重(最常用)
原理:

Set数据结构中所有元素都是唯一的,没有重复

Set 本身是一个构造函数,用来生成 Set 数据结构

// new Set(arr) 得到一个去重的set对象
// 通过 [] + 展开运算符 变成数组格式
console.log([...new Set(arr)]);

2:利用indexOf去重
原理:
indexof() 可返回某个指定的字符串值在字符串中首次出现的位置。如果没有检索到指定字符串,则返回-1

let newArr = [];
for (let i = 0; i < arr.length; i++) {
    // 检索新数组中是否有重复元素,没有就push进新数组
    if (newArr.indexOf(arr[i]) === -1)
        newArr.push(arr[i]);
}
console.log(newArr);

数组从大到小排序
1:sort方法

概念:

sort() 方法用于对数组的元素进行排序。

排序顺序可以是字母或数字,并按升序或降序。

默认排序顺序为按字母升序。

注意:当数字是按字母顺序排列时"40"将排在"5"前面。

使用数字排序,你必须通过一个函数作为参数来调用。

函数指定数字是按照升序还是降序排列。

注意: 这种方法会改变原始数组!。

// 数组排序 sort
console.log(arr.sort(sort_s),'这是升序');
console.log(arr.sort(sort_j),'这是降序');

// 升序
function sort_s(a,b){
    return a-b;
}

// 降序
function sort_j(a,b){
    return b-a;
}

2:冒泡排序
原理:
每次对相邻的两个元素进行比较,若前者大于后者则进行交换,
如此一趟下来最后一趟的就是最大元素,重复以上的步骤,除了已经确定的元素。文章来源地址https://www.toymoban.com/news/detail-741732.html

 for(var i = 0; i < arr.length-1; i++){  //外层循环管趟数 
        for(var j = 0; j < arr.length-i-1; j++){
            if(arr[j] < arr[j+1]){
                var temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }  
    console.log(arr);

到了这里,关于JavaScript数组去重,大小排序的两种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数组排序 sort() 方法 (映射对含有大小写的字符串进行排序)

    结论先行: sort() 方法: 用于对数组元素进行 排序 ,默认升序。如果指明了参数,那数组会按照 比较函数 的返回值进行排序。    sort() 方法比较两个值时,将值发送给比较函数,根据返回的(负、零、正)值对值进行排序。 举例,a 和 b 两个将要被比较的元素: 如果 a-

    2024年04月25日
    浏览(46)
  • JavaScript数组去重的方式

    数组去重的意思就是去除数组中重复的元素,处理完后数组中所有的元素都是唯一的,本文介绍了在js中数组去重的5种方式,请往下看。 Set 对象 Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。 Set 中的特殊值 Set 对象存储的值总是唯一的,所以需要判

    2024年02月07日
    浏览(41)
  • 【数据结构】归并排序的两种实现方式与计数排序

    前言:在前面我们讲了各种常见的排序,今天我们就来对排序部分收个尾,再来对归并排序通过递归和非递归的方法进行实现,与对计数排序进行简单的学习。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:数据结构 👈 💯代码仓库:卫卫周大胖的学习日记💫 💪关注博

    2024年01月18日
    浏览(49)
  • JavaScript判断变量是否为undefined的两种写法

    可以使用 typeof 操作符来判断一个变量是否为 undefined 类型 也可以使用严格相等运算符 === 来判断一个变量是否为 undefined 注意: 不要使用 == 运算符来判断一个变量是否为 undefined 因为它会在比较之前进行 类型转换 ,可能导致意外的结果。 如果要判断一个变量是否未定义(既

    2024年02月14日
    浏览(50)
  • 【前端面试手撕题】事件委托、数组去重、合法URL、快速排序、全排列

    描述 请补全JavaScript代码,要求如下: 给\\\"ul\\\"标签添加点击事件 当点击某\\\"li\\\"标签时,该标签内容拼接\\\".“符号。如:某\\\"li\\\"标签被点击时,该标签内容为”…\\\" 注意: 必须使用DOM0级标准事件(onclick) 描述 请补全JavaScript代码,要求去除数组参数中的重复数字项并返回该数组。

    2024年02月14日
    浏览(43)
  • JAVA数组去重方法

    拓展(HashSet去重原理): HashSet是一种基于哈希表实现的Set接口。它通过hashCode()方法来确定元素在集合中的存储位置,通过equals()方法来判断元素是否相同。 当向HashSet中添加元素时,HashSet会先计算元素的hashCode值,然后根据hashCode值将元素放入不同的桶(bucket)中。当多个元素

    2024年02月12日
    浏览(34)
  • 更改pip源的两种方法

    在使用`pip`安装Python包时,由于网络问题,可能会出现下载速度慢、甚至无法下载的情况。这时可以考虑更改`pip`的镜像源,以加快下载速度。以下是几种更改`pip`镜像源的方法: 1. 使用`pip`命令更改 可以使用`pip`命令更改`pip`的镜像源。以清华大学的镜像源为例,使用以下命

    2023年04月27日
    浏览(40)
  • 链表逆置的两种方法

    原链表图:   方法一:头插法链表 逆置 1.断开头节点与其他节点的连接(提前存好head-next的地址)     Node* p = head-next;     Node* q = p-next;     head-next = NULL; 2. 头插法 在head后面插入p后链表的各个节点     p-next = head-next;     head-next = p; p、q指针往后移     p = q;     if

    2024年02月16日
    浏览(47)
  • Falsh 发送图片的两种方法

    当使用flask框架的时候,去发送和接收图片,但是官方的是只有一个save方法,只能保存到本地在读取,那我岂不是还得再读出来,这多麻烦 Post发送图片 方式一 方式二 Flask接收图片 方式一 方式二 方式三

    2024年02月11日
    浏览(40)
  • qt创建线程的两种方法

    第一种:继承QThread类 方法描述 1。类MyThread继承QThread, 2。重载MyThread中的run()函数,在run()函数中写入需要执行的工作; 3。调用start()函数来启动线程。 不是真的跨线程,子线程ID和主线程ID是同一个 第二种:QObject::moveToThread 这就是我要的子线程 //用于托管我的子线程

    2024年04月27日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包