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

很多时候,我们需要去除对象当中的重复的数据,但网络上处理重复数据的方法多是通过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种方法,史上最全)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,887评论 1 32
  •   自从 2000 年以来,Web 开发方面的种种规范、条例正在高速发展。Web 开发过去曾是荒芜地带,里面东西还...
    霜天晓阅读 3,541评论 0 1
  • 为了自己,为了自己喜欢的事。坚持,
    俗不可耐的俗阅读 1,706评论 0 0
  • 师父就是师父,教法界的专家果然名不虚传,每一个问题的提出都一针见血。 我不知道自己今天哪来的这种勇气和自信,居然在...
    章琳玖_dd35阅读 1,117评论 0 1

友情链接更多精彩内容