js对数组做处理(数组去重 + 数组对象去重)

实现JavaScript中两个数组对象去重与合并的方法 lodash库被广泛用于JavaScript中,用于处理数组、对象、字符串等数据结构。它的优势在于其稳定性和丰富的函数集,这使得开发者可以轻松地实现各种复杂的操作而无需从头编写逻辑。lodash库能够:提高代码的可读性和可维护性。提供的函数都是经过优化和测试的,减少了bug出现的可能。对数据操作提供了一致且简洁的接口。 阅读详情
  • 1 . 利用双层循环,对数组去重
function unique(arr) {
    var ret = [];
    var len = arr.length;
    for (var i = 0; i < len; i++) {
        for (var j = i + 1; j < len; j++) {
            if (arr[i] === arr[j]) {
                j = ++i;
            }
        }
        ret.push(arr[i]);
    }
    return ret;
}
unique([1,2,3,1,2,3])

// [1, 2, 3]
  • 2 . 数组对象去重 ,利用 js里面的 delete 方法,但是该方法不会改变数组的长度
var arr = [{name:'12121',age:12,show:true},{name:'1212231',age:132,show:false},{name:'1212134',age:32,show:false},{name:'1212321',age:1322,show:true}]
for(var i=0;i<arr.length;i++){
	for(var item in arr[i]){
        if( arr[i][item] == true ){
           	delete arr[i]
        }
    }
}
console.log(arr)

在这里插入图片描述
PS:在VUE项目中做页面渲染的时候加一个条件:

<ul class="ul">
		<li v-for="(item,i) in list" :key="i" v-if="item != undefined">
			<p>{{item.name}}</p>
			<p>{{item.age}}</p>
		</li>
	</ul>

在这里插入图片描述
补充:

var arr = [{name:'12121',age:12,show:true,id:1},{name:'12121',age:12,show:true,id:1},{name:'dsldk',age:12,show:true,id:2},{name:'popop',age:12,show:true,id:2}]
var hash = {};i = 0; res = [];
for(var i=0;i<arr.length;i++){
	var name = arr[i].name;
		id = arr[i].id;	
		age = arr[i].age;
		show = arr[i].show;
	hash[id] ? res[hash[id] - 1] : hash[id] = ++i &&res.push({
       name: name,
       id:id,
       age: age,
       show:show
   })
}

在这里插入图片描述

方法二:
在数组中都是对象的时候就需要设置布尔值来进行去重操作,原理也是两层for循环,但是在第一层for循环内需要定义布尔值为true,用来维持一个量,之后在内层for循环中进行比对,如果按照某个条件比对满足的话,布尔值就为false,之后在第一层for循环里第二层for循环外进行布尔判断,如果为真,将数据插入到新数组,如果不为真,则不用添加。

var arr = [
    {id:1,name:"2121",age:18,contact_id:11},
    {id:1,name:"4343",age:18,contact_id:22},
    {id:1,name:"6566",age:18,contact_id:33},
    {id:1,name:"7677",age:18,contact_id:14},
    {id:1,name:"8989",age:18,contact_id:33},
    {id:1,name:"0909",age:18,contact_id:22},
    {id:1,name:"0877",age:18,contact_id:1}
];//原数据数组
var newArr = [];//新数组
for(var i=0;i<arr.length;i++){
  var flag = true;
  for(var j=0;j<newArr.length;j++){
    if(arr[i].contact_id == newArr[j].contact_id){
      flag = false;
    };
  }; 
  if(flag){
    newArr.push(arr[i]);
  };
};

在这里插入图片描述

反无人机技术实战解析:从探测到拦截的全方位防御策略 本文深入解析了反无人机(C-UAS)技术的全链条防御策略。从雷达、无线电频谱、光电等多维度探测技术,到数据融合与威胁评估,再到无线电干扰、导航诱骗及物理拦截等核心拦截手段,系统阐述了如何构建从探测到拦截的实战化防御体系,为关键设施、大型活动等场景提供定制化空域安全解决方案。 阅读详情

相关推荐

Fiddler抓包实战:5分钟搞定微信公众号历史消息接口分析(附完整Python代码)

本文详细介绍了如何使用Fiddler抓包工具逆向分析微信公众号历史消息接口,并提供完整的Python代码实现。从环境准备、动态参数捕获到商业级采集系统架构设计,全面解析了突破官方接口限制的技术方案,帮助开发者高效获取公众号文章数据。

tree8的博客 329

《剑指offer》——数组中重复的数字

题目: 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 class Solution { public: bool duplicate(int nums[], int len, int* ans) { if(nums == nullptr) {

SaBo‘s Blog 437

HT7533与1117稳压芯片动态特性对比:实测分析与优化策略

本文深入对比了HT7533与1117稳压芯片的动态特性,包括电压过冲和瞬态响应能力,并提供了实测数据与优化策略。HT7533适合低功耗设备,而1117在大电流和稳定性要求高的场景表现更优。文章还分享了PCB布局和电容选择的实用建议,帮助工程师根据项目需求选择合适的稳压芯片。

weixin_28454475的博客 610

js数组对象去重(4种方法)

问题:数组对象去重 方法一:es5冒泡排序法,去重arr(较好用) var arr = [{name: 'a',id: 1}, {name: 'a',id: 2}, {name: 'b',id: 3}, {name: 'c',id: 4}, {name: 'c',id: 6}, {name: 'b',id: 6}, {name: 'd',id: 7}]; function deWeight() { for (var i = 0; i < arr.length - 1; i++) .

前端菜菜DayDayUp的博客 9123

2024年全国大学生电子设计竞赛H题_自动行驶小车

自动行驶小车(H题)【本科组/高职高专组】

qq_74395263的博客 1万+

基于STM32F103C8T6的红外循迹避障小车

编程思路:控制核心板IO口的电平(即电机驱动模块的AIN1,AIN2,BIN1,BIN2)从而控制AO1、AO2、BO1、BO2的电平高低,进而控制电机使其正转、反转、不转。由于单纯地拉高拉低电平只能让电机在转与不转的状态切换,故决定利用TIM4的两个通道分别产生两路PWM信号来控制电机速度,四个电机两个一组,同一侧的两个连接在同一个PWM上。(#include "dianji.h"文件中同时写了对循迹模块引脚的初始化)

weixin_48743503的博客 1万+

JS 数组或数组对象去重的9种方法

/ 数组去重// 数组对象去重{ id: 1, name: "数据1" },{ id: 1, name: "数据2" },{ id: 2, name: "数据3" },{ id: 3, name: "数据4" },{ id: 4, name: "数据5" },{ id: 3, name: "数据6" },{ id: 5, name: "数据7" }

UserGuan的博客 1万+

Ubuntu 22.04 局域网安装GitLab

下面直接给你一份。

u013250861的博客 668

js数组对象去重同时判断两个属性条件相同去重

arr=[ { maxDeptCode: "md3" maxDeptName: "泡泡" minDeptCode: "md301" minDeptName: "泡泡少儿" schoolId: 1 schoolName: "北京" }, { maxDeptCode: "md2" maxDeptName: "中学" mi...

baicp3的专栏 4184

泛微OA提交流程到下一个节点

泛微OA后端接口强制流程归档

CXYCMY的博客 2247

【光子 AI】AI Agent 知识体系深度研究报告

从理论基础到前沿应用:全面解析人工智能代理的核心架构、关键技术与发展趋势📅 2026 年 3 月 | 📊 深度研究报告 | 🔬 人工智能领域 | 📈 前沿技术分析**AI Agent(人工智能代理)**是一种能够感知环境、基于所获得的信息做出决策,并执行行动以影响该环境的软件系统。AI Agent 的设计旨在模仿或实现智能行为,它们可以在各种环境中操作,包括物理世界和虚拟空间。随着大语言模型(LLM)技术的突破性进展,AI Agent 正从实验室研究快速走向产业应用。根据 Gartner 发布的《2

AI天才研究院 177

js数组对象去重

今天给大家介绍三种数组对象去重的方法,简单方便 有这么一组数组对象: let arr = [{ id: '1', key: '1', value: '明月' }, { id: '3', key: '2', value: '可欣' }, { id: '2', key: '3', value: '小红' }, { id: '1', key: '1', value: '小馨

Lguorong的博客 3万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

数组去重方法总结-利用sort()

function unique(arr) { if (!Array.isArray(arr)) { console.log('type error!') return; } arr = arr.sort() var arrry= [arr[0]]; for (var i = 1; i < arr.length; i++) { if (arr[i] !== arr[i-1]) { arrry.

LuckXinXin的博客 1674

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

js对象数组去重,简单数组去重

JavaScript对象数组去重一、对象数组去重方式一二、对象数组去重方式二三、简单类型的数组去重 一、对象数组去重方式一 使用reduce函数。 let arr = [ { key:'1', name:'林青霞' }, { key:'2', name:'张三丰' },

weixin_43242112的博客 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

JS数组怎么去重?| JavaScript中数组去重的14种方法

JS数组怎么去重?JavaScript中数组去重的13种方法,甚是详细,遇到数组去重问题时,可翻阅查看对应的去重方法

青春木鱼的博客 1万+

js中数组对象去重的方法

js中数组对象去重的方法     今天在进行百度地图开发时,遇到多个重复的点位,需要将重复的点位进行过滤,正常的数组我们通常都能找到方法进行解决,但对对象数组进行去重处理,有点蒙圈,下面我们就进一步研究 var points = [{ lat: 22.687, lng: 114.014 ...

七侠剑客的博客 1万+

JS的对象数组去重处理(二十)

也许,我本来就该成为你。 上一章简单介绍了JS的数组去重处理(十九),如果没有看过,请观看上一章。 一. 对象数组的去重 如果数组中,存在的是普通的基本类型值,可看上一章的内容。 如果是对象数组,那么该如何处理呢? 主要是如何判断 两个对象是否相同呢? 在Java 中,需要重写 hashCode() 和equals() 来指明 当某些属性是一样的,就表示两个对象是相同的。 如User 实体类中,...

两个蝴蝶飞 1万+

Web前端之JavaScript多种方式实现纯数组去重、根据两个或多个属性去重、数组对象去重、数组API

Web前端之JavaScript多种方式实现纯数组去重、根据两个或多个属性去重、数组对象去重、数组API

优快云博客主页地址:https://mengjian.blog.youkuaiyun.com/ 1998

JS数组对象去重,ES6最简数组去重

js数组对象去重 // 测试数据 // 比如我们处理 value 的去重 var arrList = [ {key: 1, value: "aaa"}, {key: 2, value: "bbb"}, {key: 3, value: "ccc"}, {key: 4, value: "aaa"}, {key: 5, value: "aaa"}, {key: 6, value: "ddd"}, ]; /** * 数组对象去重 * 设置cur默认类型为数组,并且初始值为空的数组 */ let

weixin_34403976的博客 7167

js数组中对象去重的方法

一个数组中含有对象,并且去除数组中重复的对象 id相同的,保留第一个,其它的删除 let arr = [ { id: 0, name: "张三" }, { id: 1, name: "李四" }, { id: 2, name: "王五" }, { id: 3, name: "赵六" }, { id: 1, name: "孙七" }, { id: 2, name: "周八" }, {

bighead的博客 3万+

数组去重,对象去重,对象数组去重

数组去重:1. 双层循环+splice 2.set() 3.srot() 4.foreach+indexOf() 5.filter()+indexOf() 6. forEach+includes() 7.hasownProperty() 8.reduce+includes() 对象数组去重:1.双层循环+splice 2.for+新数组 3.利用对象属性 4.for of +find() 5.filter()+findIndex() 6.forEach+some() 7.reduce() 8.Map()

Realizee的博客 4073

JS对象数组去重

之前写过一篇有关数组去重的博客,是针对数组项去重,今天来整理一篇有关数组对象的某个属性相同而去重的方法 需求 一个数组中的每一项都是对象,现在需要将这个对象中name相同的只保留一个,即根据对象的name去重,通过以下方法可实现 解决方法 【1】数组方法reduce()介绍 reduce()方法从左到右依次处理数组的每个成员,最终累计...

越努力,越幸运! 4668

JS数组去重,JS根据数组里面的对象属性值去重

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 微信小程序开发交流qq群 173683895 js数组简单去重 var arr1 = [1, 2, 3, 4, 5, 6, 3, 4, 3]; function arrayUnique1(arr) { var arr1 = [], obj = {}; fo...

a_靖的博客 4894

JS数组中 reduce() 方法 数组对象去重

参考引用: 数组里面对象去重的3种方法: https://blog.youkuaiyun.com/l284969634/article/details/91397332 js数组去重的多种方法: https://blog.youkuaiyun.com/linglingzi001/article/details/107772411 JS中reduce方法: https://blog.youkuaiyun.com/hope93/article/details/86528183 Array.reduce()方法解析: https://blog.cs

AS_TS的博客 3202

【JavaScript】JS数组去重的几种常见方法

JS数组去重的几种常见方法 一、简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ function uniq(array){ var temp = []; //一个新的临时数组 for(var i = 0; i &amp;lt; array.length; i++){ ...

Dream_Lee的博客 1983
上一篇: js 相关语法(json数据处理)
下一篇: JS进度条
Amy o-O
博客等级 码龄9年 19粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值