资讯专栏INFORMATION COLUMN

javascript数组去重函数

liuchengxu / 2583人阅读

摘要:模样如下对于基本类型数组输出,对于对象数组输出自己写的供大家当工具函数使用,可能会比冒泡排序那种去重要快一些。其中一点说明的是对于对象数组,参数是一个函数,这个函数返回用来去重的属性。

模样如下:

Array.prototype.delrep = function(fun) {
        if(!fun) {
            fun = function(d) {return d;};
        }
        var newArr = [];
        this.sort(function(a, b) {
            return fun(a) > fun(b) ? -1 : 1;
        });
        newArr.push(this[0]);
        this.forEach(function(d) {
            if(fun(d) != fun(newArr[0])) {
                newArr.unshift(d);
            }
        });
        return newArr;
    };

1,对于基本类型数组:

[1,2,3,4,5,5,6,6,5].delrep();//输出[1, 2, 3, 4, 5, 6]

2,对于对象数组:

var data = [
        {
            name: "aaa",
            value: 123
        },
        {
            name: "bbb",
            value: 234
        },
        {
            name: "aaa",
            value: 789
        }
    ];
console.log(data2.delrep(function(d) {return d.name;}));
//输出[
        {
            name: "bbb",
            value: 234
        },
        {
            name: "aaa",
            value: 789
        }
    ];

自己写的供大家当工具函数使用,可能会比冒泡排序那种去重要快一些。
其中一点说明的是对于对象数组,参数是一个函数,这个函数返回用来去重的属性。

希望我的文章能帮助到你,更多资料请翻阅d3js.org,
我是朱现明,任职于精硕科技可视化部门前端开发,更多精彩的文章即将奉上.

zhuxianming@admaster.com.cn

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/87484.html

相关文章

  • JavaScript专题之数组去重

    摘要:专题系列第三篇,讲解各种数组去重方法,并且跟着写一个前言数组去重方法老生常谈,既然是常谈,我也来谈谈。它类似于数组,但是成员的值都是唯一的,没有重复的值。 JavaScript 专题系列第三篇,讲解各种数组去重方法,并且跟着 underscore 写一个 unique API 前言 数组去重方法老生常谈,既然是常谈,我也来谈谈。 双层循环 也许我们首先想到的是使用 indexOf 来循...

    fsmStudy 评论0 收藏0
  • 也谈面试必备问题之 JavaScript 数组去重

    摘要:而数组元素去重是基于运算符的。而如果有迭代函数,则计算传入迭代函数后的值,对值去重,调用方法,而该方法的核心就是调用方法,和我们上面说的方法一异曲同工。 Why underscore (觉得这部分眼熟的可以直接跳到下一段了...) 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中。 阅读一些著名框架类库的源码,就好像...

    Coly 评论0 收藏0
  • JavaScript 实现数组更多的高阶函数

    摘要:实现数组更多的高阶函数吾辈的博客原文场景虽说人人平等,但有些人更加平等。若是有一篇适合萌新阅读的自己实现数组更多操作的文章,情况或许会发生一些变化。类似于的初始值,但它是一个函数,避免初始值在所有分组中进行累加。 JavaScript 实现数组更多的高阶函数 吾辈的博客原文: https://blog.rxliuli.com/p/fc... 场景 虽说人人平等,但有些人更加平等。 为...

    aervon 评论0 收藏0
  • JS专题之数组去重

    摘要:将元素作为对象的键,默认键对应的值为如果对象中没有这个键,则将这个元素放入结果数组中去。 前言 数组去重在日常开发中的使用频率还是较高的,也是网上随便一抓一大把的话题,所以,我写这篇文章目的在于归纳和总结,既然很多人都在提的数组去重,自己到底了解多少呢。又或者是如果自己在开发中遇到了去重的需求,自己能想到更好的解决方案吗。 这次我们来理一理怎么做数组去重才能做得最合适,既要考虑兼容性,...

    only_do 评论0 收藏0
  • JavaScript数组去重—ES6的两种方式

    摘要:数组的方法方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。可选,执行函数时的值。删除所有的键值对,没有返回值。返回一个布尔值,表示某个键是否在当前对象之中。 说明 JavaScript数组去重这个问题,经常出现在面试题中,以前也写过一篇数组去重的文章,(JavaScript 数组去重的多种方法原理详解)但感觉代码还是有点不够简单,今天和大家再说两种方法,代码...

    FrancisSoung 评论0 收藏0
  • JavaScript数组去重—ES6的两种方式

    摘要:数组的方法方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。可选,执行函数时的值。删除所有的键值对,没有返回值。返回一个布尔值,表示某个键是否在当前对象之中。 说明 JavaScript数组去重这个问题,经常出现在面试题中,以前也写过一篇数组去重的文章,(JavaScript 数组去重的多种方法原理详解)但感觉代码还是有点不够简单,今天和大家再说两种方法,代码...

    lijinke666 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<