ES6 set方法对数组去重和排序

之前对数组做去重有很多方法,但大多比较麻烦,现在用ES6里面的set方法非常方便

直接上代码

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>

<body>

<script>

    function 初级写法(){
        let arr = [3,5,2,1,3,2,4];

        let setArr = new Set( arr );
        // set方法不允许重复 此时setArr已经去重了

        let newArr = [];

        for( let i of setArr ){
            // set不能用普通的for循环和for in 循环 但是可以用foreach
            newArr.push(i);

        };

        newArr.sort();

        console.log( newArr );
    };

    function 高级写法(){
        let arr = [3,5,2,1,3,2,4];

        let newArr = [ ...new Set( arr ) ].sort();

        console.log( newArr );
    };

    高级写法();
</script>
</body>
</html>

原文地址:https://www.cnblogs.com/carol1987/p/9759544.html

时间: 2024-11-10 07:58:06

ES6 set方法对数组去重和排序的相关文章

数组去重及排序/0~10随机数字/字符串中出现最多的字符及次数

数组去重及排序: var arr = [1,5,1,2,6,8,1,81,9,0]; for(var i=0;i<arr.length;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i] == arr[j]){ arr.splice(j,1); j--; } } } arr.sort(function(a,b){ return a-b; // 从小到大排序 }) alert(arr); // 0,1,2,5,6,8,9,81 arr.sort(fu

数组去重统计排序

需求是:统计次数并按照要求排序: 思路: 第一步:拼接字符串,返回一个字符串数组: 第二步 :查询数组,去重并统计次数: 第三步:使用sort()函数进行排序: 第四步:join()函数.把数组元素放到字符串中,的确很绕,学程序的没办法,多练习. <!doctype html> <html> <head> <meta charset="utf-8"> <title>数组去重统计排序</title> <styl

数组-去重、排序方法、json排序

1.数组去重 /*方法一: 1,'1' 会被认为是相同的; 所有hash对象,如:{x;1},{y:1}会被认为是相同的 //10ms */ Array.prototype.unique=function(){ var newArr=[],obj={}; for(var i=0,len=this.length;i<len;i++){ if(!obj[this[i]]){ newArr.push(this[i]); obj[this[i]]=true; } } return newArr; } /

7、数组去重和排序

一.数组去重 /** * 数组去重 * 1.双循环法-判断有无相等项 * 注意:第二个循环要从 i+1 开始 * */ let circleRepeat = function (ary) { for(let i=0;i<ary.length;i++){ let cur = ary[i]; for(let j=i+1;j<ary.length;j++){ if(cur === ary[j]){ ary.splice(j,1); j--; } } } return ary }; // consol

indexOf() 使用方法(数组去重)

对于indexOf()的用法一直停留在查找第几个字符串,却不知道它能用到数组去重中,首先还是温顾下indexOf()的语法: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <!-- 1.indexOf() 方法对大小写敏感! 2.如果要检索的字符串值没有出现,则该

数组去重和排序

一.常见的数组排序方法: //冒泡 function bubbleSort(arr){ var r=1,i=0; for(r=1;r<arr.length;r++){ for(i=0;i<arr.length-1;i++){ arr[i]>arr[i+1]&&(arr[i+1]=[arr[i],arr[i]=arr[i+1]][0]) } } } //插入 var arr=[2,4,1,3,5]; function insertSort(arr){ for(var i=1

5种方法实现数组去重

最简单的思路,先创建一个新数组作为容器,遍历原数组,判断每一项在新数组中是否存在,若不存在则把这一项push到新数组中,若存在则忽略. var arr = [1, 2, 3, 2, 4, 1]; var newArr = []; for (var i = 0; i < arr.length; i++) { if (newArr.indexOf(arr[i]) === -1) { newArr.push(arr[i]); } } console.log(newArr); // [1, 2, 3,

ES6使用Set实现数组去重

ES6里新添加了两个很好用的东西,Set和Array.from. Set是一种新的数据结构,它可以接收一个数组或者是类数组对象,自动去重其中的重复项目. 常情况下,NaN === NaN 返回的是false,但是在set里,一样能够帮你去重. 但是我们发现得到的结果,是一个对象,并不是数组,如果我们需要得到数组该肿么办呢?可以使用Array.from(),它可以把类数组对象.可迭代对象转化为数组: 原文地址:https://www.cnblogs.com/wangqiao170/p/104057

简洁的数组去重并排序

1 var c=[1,8,6,4,88,22,99,4,6,86,5,58,89,5]; 2 c.sort(function (a,b) { 3 return a-b;//从小到大排序 改变原数组 4 }); 5 c = unique(c); 6 function unique(arr){ 7 var res = [arr[0]]; 8 for(var i=1;i<arr.length;i++){ 9 if(arr[i] !== res[res.length-1]){ 10 res.push(a