zoukankan      html  css  js  c++  java
  • js对象数组操作之一:对象数组中对象去重的方法总结

    在日常开发业务中,经常会有一个数组由多个对象构成,需要对这种数据结构进行操作,如下:

    const arr = [ { name:'tom', age:15 }, { name:'jack', age:18 }, { name:'tom', age:10 }, ...]

    今天总结了一下

    先说这种数据结构的去重方法,对于数组中的多个对象去除重复,需要设置布尔值来进行。

    一、jquery方法

    var oldArr = [ 
      { name:'tom', age:15 },
      { name:'jack', age:18 },
      { name:'tom', age:10 }
    ];
    var allArr = [];//新数组
    $.each(oldArr,function(i,v){
        var flag = true;
        if(allArr.length > 0){
            $.each(allArr,function(n,m){
                if(allArr[n].name == oldArr[i].name){
              flag = false;
            }; }); };
    if(flag){ allArr.push(oldArr[i]); }; });
    二、原生js方法
    for(var i=0;i<oldArr.length;i++){
      var flag = true;
      for(var j=0;j<allArr.length;j++){
        if(oldArr[i].name == allArr[j].name){
          flag = false;
        };
      }; 
      if(flag){
        allArr.push(oldArr[i]);
      };
    };

    三、reduce方法

    var hash = {}; 
    arr = arr.reduce(function(item, next) { 
    hash[next.name] ? '' : hash[next.name] = true && item.push(next); 
    return item 
    }, []) 

    四、ES6的Set

  • 相关阅读:
    51keil编译器printf函数
    asp.net里登陆记住密码
    Asp.net GridView分页
    DataTable拆分分页
    ASP.NET MVC 窗体身份验证及角色权限治理示例
    asp.net获取IP地址
    Asp.net Ajax框架教程
    将页面的ViewState放在Session
    20个Jquery表单插件
    前端下载图片的N种方法
  • 原文地址:https://www.cnblogs.com/toggle/p/9636299.html
Copyright © 2011-2022 走看看