es 数组去重,数组里面的对象去重

// 数组去重
{
   const arr = [1,2,3,4,1,23,5,2,3,5,6,7,8,undefined,null,null,undefined,true,false,true,‘中文‘,‘‘,‘‘,‘hello‘,‘中文‘];
   //  第一种
   const r = [...new Set(arr)];
   console.log(r); // [1, 2, 3, 4, 23, 5, 6, 7, 8, undefined, null, true, false, "中文", "", "hello"]

   // 第二种
   const R = arr.reduce((all,name) => all.includes(name) ? all :[...all,name],[]);
   console.log(R); // [1, 2, 3, 4, 23, 5, 6, 7, 8, undefined, null, true, false, "中文", "", "hello"]

   // 第三种
   const k = arr.filter((item, i) => i === arr.indexOf(item));
   console.log(k); // [1, 2, 3, 4, 23, 5, 6, 7, 8, undefined, null, true, false, "中文", "", "hello"]
}

// 统计每个元素在数组中出现的次数
{
   const arr = [‘zhangsan‘, ‘lisi‘, ‘wangwu‘, ‘zhangsan‘, ‘lisi‘, ‘wangwu‘,‘zhaosi‘,‘liuneng‘];
   const r = arr.reduce((all, name) =>{
      if(name in all){
         all[name]++
      }else{
         all[name] = 1;
      }
      return all;
   },{});
   console.log(r); // {zhangsan: 2, lisi: 2, wangwu: 2, zhaosi: 1, liuneng: 1}
}

// 数组对象去重
{
   const arr = [
      {
         name:‘zhangsan‘,
            age:12
      },
        {
         name:‘lisi‘,
         age:14
      },
      {
         name:‘zhangsan‘,
            age:12
      },
        {
         name:‘lisi‘,
         age:14
      },
      {
         name:‘zhangsan‘,
            age:12
      },
        {
         name:‘lisi‘,
         age:14
      },
      {
         name:‘zhangsan‘,
            age:12
      },
        {
         name:‘wangwu‘,
         age:16
      },
      {
         name:‘wagnwu‘,
            age:16
      },
        {
         name:‘lisi‘,
         age:14
      },

   ]

   // 根据 age 去重
    // 方法一
    const age = ‘age‘;
   const r = arr.reduce((all, next) => all.some((atom) => atom[age] == next[age]) ? all : [...all, next],[]);
   console.log(r);

}
时间: 2024-08-29 06:05:58

es 数组去重,数组里面的对象去重的相关文章

js对象数组操作之一:对象数组中对象去重的方法总结

在日常开发业务中,经常会有一个数组由多个对象构成,需要对这种数据结构进行操作,如下: const arr = [ { name:'tom', age:15 }, { name:'jack', age:18 }, { name:'tom', age:10 }, ...] 今天总结了一下 先说这种数据结构的去重方法,对于数组中的多个对象去除重复,需要设置布尔值来进行. 一.jquery方法 var oldArr = [ { name:'tom', age:15 }, { name:'jack', a

用JS实现一个数组合并的方法(要求去重)

最近发现一道面试题,用JS实现一个数组合并的方法(要求去重).我们知道,concat方法会合并两个数组并返回一个新的数组,新的数组会包含旧数组中的每一个元素,即[1,2,3]与[2,3,4]合并后的结果为[1,2,3,2,3,4].那么该如何实现,既能合并又能去重? 思路就是,将目标数组的值作为key放进一个对象中,在这个过程中,重复的值就被过滤掉了,这样就排除了重复的值. 两个数组,a = [1,2,3], b = [2,3,4],要求合并后的数组为[1,2,3,4] Array.protot

3、假设有一个对象数组,想根据某个对象属性对数组进行排序时

function createComparisonFunction(propertyName){ return function(object1,object2){ var value1=object1[propertyName]; var value2=object2[propertyName]; if(value1<value2){ return -1 }else if(value1>value2){ return 1 }else { return 0; } }} 例如:var data=

08.18 javascript 06 数组 数组的概念 创建数组 读取数组中的元素 稀疏数组 添加和删除数组的元素 数组遍历 多维数组 数组的方法 类数组对象 作为数组的字符串

# 数组 ### 数组的概念 * 数组是值的有序集合 * 数组中的每个值 称之为 元素 * 每个元素可以是任意数据类型的值 * 每个元素都有索引(下标) * 元素的索引从0开始,按照顺序递增. 元素最大的索引 2^32-2 ### 创建数组 * 直接量 `[]` * 构造函方式  `new Array()` ### 读写数组中的元素 * 数组名[索引] ### 稀疏数组 * js数组的索引是连续的 * 没有连续的给元素赋值 , 没有赋值的元素会自动赋值 undefined ### 添加和删除 数

JAVA对象去重

JAVA对象去重比较恶心的说 需求:我要做的是去重每个权限的菜单,菜单表结构是 ID RoleID MenuID  获取的菜单表 应该是MenuID不能重复的 所以写菜单表的实体类,重写equals hashCode方法,让着2个作比较,下面代码中MenuID为主要比较的字段 package com.attendance.mvc.model; import com.jfinal.plugin.activerecord.Model; public class RoleMenu extends Mo

JSon_零基础_002_将List类型数组转换为JSon格式的对象字符串,返回给界面

将List类型数组转换为JSon格式的对象字符串,返回给界面 所需要导入的包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * 下一步com.west.webcourse.servlet.JavaBeanToJOSNString.java */ public class PersonInfoPo { private String name; private int age; private String sex; publ

数组之---数组是第一级对象!

数组是对象: 无论使用哪种类型的数组,数组标示符其实只是一个引用,指向在堆中创建的一个真实对象,这个数组对象用以保存指向其他对象的引用. 可以作为数组初始化语法的一部分隐式的创建此对象,或者用new表达式显示的创建. 只读成员length是数组对象的一部分(事实上这是唯一一个可以访问的字段或方法),表示此数组对象可以存储多少元素."[]"语法是访问数组对象的唯一方式. 初始化数组的各种方式 & 对象数组和基本类型数组的使用: 下例总结了初始化数组的各种方式,也说明,对象数组和基

类数组转数组,对象转数组

1.类数组转数组 //类数组示例 //javascript中常见的类数组有arguments对象和DOM方法的返回结果.//比如 document.getElementsByTagName(). var a = {'1':'gg','2':'love','4':'meimei',length:5}; Array.prototype.join.call(a,'+');//'+gg+love++meimei' //非类数组示例 var c = {'1':2}; //没有length属性就不是类数组

springmvc后台接前端的参数,数组,集合,复杂对象等

springmvc后台接前端的参数,数组,集合,复杂对象等 参考地址:https://blog.csdn.net/feicongcong/article/details/54705933 常用的几种方式如下: (1)数组: 后台 @ResponseBody @RequestMapping(value = "/ajaxsortPriority") public ResultDo ajaxsortPriority(@RequestParam("ids[]") Long[