美文网首页
【盘一盘】009 js快速行之有效的去重数据操作

【盘一盘】009 js快速行之有效的去重数据操作

作者: 大白0928 | 来源:发表于2019-11-01 16:48 被阅读0次

很多时候,我们需要去除对象当中的重复的数据,但网络上处理重复数据的方法多是通过indexOf( )来除去,但有时,我们只是因为有某个属性相同而需要去重。

案例

dataInfo = [
  { name: "入口",value: [100, 20],img: "") },
  { name: "展厅", value: [90, 60], img: "") },
  { name: "演示厅", value: [55, 60], img: "./../logo.png") },
  { name: "教室", value: [20, 70], img: "") },
  { name: "演示厅", value: [85, 90], img: "./img.png") }
]

代码

如上,我需要清除的数据是重复的name数据“演示厅”。如果使用indexOf永远得到的数据值是-1
所以,我调整了一些思路,如下源码:

/**
     * js快速行之有效的去重数据操作
     * @param  {object} array 数组对象
     * @param  {string} name 去重的判断对象
     * @return {string} n 返回数组
     */
    uniqueArr(array, name){
      let bb = JSON.stringify(array);
      var n = JSON.parse(bb); // 一个新的临时数组
      // 遍历当前数组
      for (let i=0, len=n.length; i<len; i++) {
        for (let j=i+1; j<len; j++) {
          if (n[i][name] == n[j][name]) {
            n.splice(j, 1);
            // splice 会改变数组长度,所以要将数组长度 len 和下标 j 减一
            len--;
            j--;
          }
        }
      }
      return n;
    }

接收返回这个函数即可。
当然,去重的方法有很多种,需要根据具体业务来操作。

如果这种方法无法解决你的问题,推荐阅读:

JavaScript数组去重(12种方法,史上最全)

相关文章

  • 【盘一盘】009 js快速行之有效的去重数据操作

    很多时候,我们需要去除对象当中的重复的数据,但网络上处理重复数据的方法多是通过indexOf( )来除去,但有时,...

  • JS文集的目录

    js基础心法 深浅拷贝(递归)深浅拷贝(首层浅拷贝) js 数据处理 数组对象查找的常见操作数组对象去重的常见操作...

  • swift-集合Set

    集合特点: 无序的数据集 排重, 数据唯一 提供集合操作 快速查找 集合操作 集合操作 加上Inplace就会改变...

  • 8.pandas 剔除重复

    生成数据 去重操作 重复数据

  • js数据去重方法

    方法一:借助indexOf ,判断首次出现的下标位置与循环下标是否相等function uniqueArrOne(...

  • 常用sql语句

    删除重复数据 更新操作数组数据 插入去重更新

  • 2019前端面试题整理

    js基本数据类型 Number,String,Boolean,null,undefined,object 数组去重...

  • 我的围棋学习小传-复盘篇

    复盘,围棋当中非常重要的一环,下完一盘棋之后如果不复盘,这一盘棋所起到的效果便大打折扣。对弈之后,棋手双方把棋局重...

  • js去重

    var arr2 = [ { name: "name1", num: "1" }, { name: "name...

  • 人生奈何

    人的一生三大盘,出生一盘,结婚一盘,离世一盘,第一盘太小不会吃,第二盘太忙没时间吃,第三盘安静躺那没机会吃,一盘生...

网友评论

      本文标题:【盘一盘】009 js快速行之有效的去重数据操作

      本文链接:https://www.haomeiwen.com/subject/ainbvctx.html