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

原文地址:https://www.cnblogs.com/toggle/p/9636299.html

时间: 2024-12-30 04:06:14

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

C#中datatable去重的方法

这篇文章主要介绍了C#中datatable去重的方法,通过两种不同的方法对比分析了datatable去重的技巧,非常具有实用价值,需要的朋友可以参考下 这里主要介绍两种方法: 1  数据库直接去除重复 select  distinct * from 表名 2 对 DataTable直接进行操作 DataTable dt=db.GetDt("select * from 表名");//获得datatable DataView dv = new DataView(dt);//虚拟视图吧,我这

redis jedis存储对象简单操作,map list 自定义对象

安装好redis,进行了基本的操作.包括对map list 和自定义对象的基本操作.笔记都在代码注释里,直接上代码. private Jedis jedis; @Before public void before() { jedis = new Jedis("127.0.0.1"); } /** * 简单添加 */ @Test public void test1() { String name = "name"; String value = "qq&qu

PHP数组操作汇总 php数组的使用技巧

对于Web编程来说,最重要的就是存取和读写数据了.存储方式可能有很多种,可以是字符串.数组.文件的形式等. 数组,可以说是PHP的数据应用中较重要的一种方式.PHP的数组函数众多,下面是我学习的小结,借此记之,便于以后鉴之. 1. 数组定义 数组的定义使用 array()方式定义,可以定义空数组: 复制代码代码如下: <?php $number = array(1,3,5,7,9); //定义空数组 $result = array(); $color =array("red",&

Java 数组 使用arraycope复制数组 使用java工具类操作数组 操作二维数组 使用foreach操作数组

class arraycope { /** 目标数组必须有足够的空间来存放拷贝的元素 定义任意类型的数组元素拷贝操作,能支持任意类型的数组元素拷贝操作 */ public static void main(String[] args) { int[] src= new int[]{101,102,103,104,105,106}; int[] dest= new int[]{201,202,203,204,205,206,207}; //System.arraycopy(源数组,源数组拷贝起始位

Spring中c3p0连接池的配置 及JdbcTemplate的使用 通过XML配置文件注入各种需要对象的操作 来完成数据库添加Add()方法

通过配置文件XML方法的配置 可以使用非常简练的Service类 UserService类代码如下: package com.swift; public class UserService { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } public boolean add() { return userDao.add(); } } UserService

navigator对象的存在于所有浏览器中的属性和方法

js数组操作常用方法(转自:http://www.jbxue.com/article/js/20224.html)

js数组操作常用方法,包括数组的创建.数组的元素的访问.数组元素的删除.数组的拷贝等. 原文参考自:http://www.jbxue.com/article/js/20224.html 在jquery中处理JSON数组的情况中遍历用到的比较多,但是用添加移除这些好像不是太多. 今天试过json[i].remove(),json.remove(i)之后都不行,看网页的DOM对象中好像JSON数据是以数组的形式出现的,查阅了下相关JS中数组的操作一试果然很爽.记录下来.1.数组的创建 var arr

JS 数组常见操作汇总,数组去重、降维、排序、多数组合并实现思路整理

壹 ? 引 JavaScript开发中数组加工极为常见,其次在面试中被问及的概率也特别高,一直想整理一篇关于数组常见操作的文章,本文也算了却心愿了. 说在前面,文中的实现并非最佳,实现虽然有很多种,但我觉得大家至少应该掌握一种,这样在面试能解决大部分数组问题.在了解实现思路后,日常开发中结合实际场景优化实现,提升性能也是后期该考虑的. 本文主要围绕数组去重.数组排序.数组降维.数组合并.数组过滤.数组求差集,并集,交集,数组是否包含某项等知识点展开,附带部分知识拓展,在看实现代码前也建议大家先自

ORMBase对象/关系型数据库映射在MVC中的应用

ORM这个字眼在我们操作数据库的时候,是我们使用频率最高的.它到底是个什么东西呢,我们先来看看一些对它的含义解释. 对象/关系数据库映射(object/relational mapping(ORM))这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据库结构中去.ORM,即Object- Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的 SQL语句打交道,

一、数组操作的基本函数

一.数组操作的基本函数数组的键名和值array_values($arr);获得数组的值array_keys($arr);获得数组的键名array_flip($arr);数组中的值与键名互换(如果有重复前面的会被后面的覆盖)in_array("apple",$arr);在数组中检索applearray_search("apple",$arr);在数组中检索apple ,如果存在返回键名array_key_exists("apple",$arr);检