js实现对象数组去重
数组去重,一般会在面试的时候才会碰到,要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些?你能答出其中的10种,面试官很有可能对你刮目相看。
在实际项目中碰到的数组去重,一般都是后台去处理,很少让前端处理数组去重。虽然运用到的概率较低,但还是需要了解一下,以防面试的时候被问到。
在项目中定义对象数组是非常常见的,这就免不了要对对象数组进行去重。当然不能简单的使用===来解决问题,因为这时候数组中的类型为对象类型,即使完全相同的两个对象也不相等的。下面的例子说明一切:
1.数字数组去重
var arr = [11,11,22,33]
function unique(arr) {return arr.filter(function (ele, index, array) {return array.indexOf(ele) === index})
}
unique(arr);
2.对象数组去重
var objArr = [{name:1,num:1},{name:1,num:1},{name:2,num:2}];
const removeDuplicateObj = (arr) => {let obj = {};arr = arr.reduce((newArr, next) => {obj[next.id] ? "" : (obj[next.id] = true && newArr.push(next));return newArr;}, []);return arr;
};
removeDuplicateObj(objArr);
3. 将字符串转成数组
Array.from("将字符串转成数组");//["将", "字", "符", "串", "转", "成", "数", "组"]
4.找到数组的最大和最小值,仅适用于单数字数组
let min = arr.sort((a, b) => a - b)[0];
let max = arr.sort((a, b) => b - a)[0];
5.将一个数组中的每个undefined,‘’,0,false,null的元素过滤掉
let list = [1, "", undefined, 11341];
arr.filter(Boolean); //[1,11341]
相关文章:
js实现对象数组去重
数组去重,一般会在面试的时候才会碰到,要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些?你能答出其中的10种,面试官很有可能对你刮目相看。 在实际项目中碰到的数组去重,一般都是后台去处…...
2023 极术通讯-安谋科技发布“山海”S20F安全解决方案,持续加码智能汽车“芯”赛道
导读:极术社区推出极术通讯,引入行业媒体和技术社区、咨询机构优质内容,定期分享产业技术趋势与市场应用热点。 芯方向 AMBA向多芯片和CHI C2C进发 Arm的Advanced Microcontroller Bus Architecture(AMBA)在与生态系…...
GRPC学习
GRPC元数据 在gRPC中,元数据(metadata)是用于在gRPC请求和响应中传递附加信息的一种机制。元数据是以键值对(key-value pairs)的形式组织的信息,它可以包含请求的上下文信息、安全凭证、消息传输相关的信息…...
c++ latch 使用详解
c latch 使用详解 std::latch c20 头文件 #include <latch>。作用:提供了一种机制,可以让一个或多个线程等待,直到计数器减为零。注意事项: latch 为向下计数器,即只能减少不能增加或者重置。这也使得其只能单…...
linux 下正确使用cp命令复制目录
linux下复制目录时,cp -r 没有 cp -a 好: 使用cp -r 拷贝数据,拷贝的结果是生成新的时间戳等信息 使用cp -a 相当于将原数据原封不动的拷贝过来,不改变里面的任何信息 指定目录时, 源目录/* 【说明:斜…...
CTF----Web真零基础入门
目录 前置知识导图: TCP/IP体系结构(IP和端口): IP是什么:是计算机在互联网上的唯一标识(坐标,代号),用于在互联网中寻找计算机。 内网(局域网…...
css实现元素四周阴影
前言 首先确定的是需要使用box-shadow这一属性 语法如下: box-shadow: h-shadow v-shadow blur spread color inset; h-shadow:表示水平方向上的阴影偏移量,必须指明,可以是正数、负数、0,如果为正数左方有阴影&…...
《QT从基础到进阶·二十五》界面假死处理
假如有这样一种情况,我们在主线程写了一个死循环,当程序运行到主线程的死循环代码后界面便卡死点了没有反应,这里提供几种方法处理界面假死的情况,保证比如主线程在执行死循环没有退出的时候点击界面不会卡死能继续执行其他功能。…...
卷积神经网络(1)
目录 卷积 1 自定义二维卷积算子 2 自定义带步长和零填充的二维卷积算子 3 实现图像边缘检测 4 自定义卷积层算子和汇聚层算子 4.1 卷积算子 4.2 汇聚层算子 5 学习torch.nn.Conv2d()、torch.nn.MaxPool2d();torch.nn.avg_pool2d(),简要介绍使用方…...
Mysql中名叫infomaiton_schema的数据库是什么东西?
在 MySQL 中,information_schema 是一个系统数据库,用于存储关于数据库服务器元数据的信息。它并不存储用户数据,而是包含有关数据库、表、列、索引、权限等方面的元数据信息。这些信息可以通过 SQL 查询来获取,用于了解和管理数据…...
Django(复习篇)
项目创建 1. 虚拟环境 python -m venv my_env cd my_env activate/deactivate pip install django 2. 项目和app创建 cd mypros django-admin startproject Pro1 django-admin startapp app1 3. settings配置INSTALLED_APPS【app1"】TEMPLATES【 DIRS: [os.pat…...
MySQL里对时间的加减操作及常用语法
查询当前时间: select NOW(); //2023-11-14 11:36:03 select CURDATE(); //2023-11-14 SELECT CURTIME(); //11:36:03日期加日期: select date_add(NOW(), interval 1 year); //加1年 select date_add(NOW(), interval 1 month); …...
『MySQL快速上手』-⑨-复合查询
文章目录 1.基本查询回顾2.多表查询案例3.自链接案例4.子查询4.1 单行子查询4.2 多行子查询4.3 多列子查询4.4 在from子句中使用子查询5.合并查询5.1 union5.2 union all6.表的内连和外连6.1 内连接6.2 外连接6.2.1 左外连接6.2.2 右外连接...
高并发架构设计(三大利器:缓存、限流和降级)
引言 高并发背景 互联网行业迅速发展,用户量剧增,系统面临巨大的并发请求压力。 软件系统有三个追求:高性能、高并发、高可用,俗称三高。三者既有区别也有联系,门门道道很多,全面讨论需要三天三夜&#…...
ElasticSearch7.x - HTTP 操作 - 文档操作
创建文档(添加数据) 索引已经创建好了,接下来我们来创建文档,并添加数据。这里的文档可以类比为关系型数 据库中的表数据,添加的数据格式为 JSON 格式 向 ES 服务器发 POST 请求 :http://192.168.254.101:9200/shopping/_doc 请求体内容为: {"title":"小…...
[数据结构大作业]HBU 河北大学校园导航
校园导航实验报告 问题描述: 以我校为例,设计一个校园导航系统,主要为来访的客人提供信息查询。系统有两类登陆账号,一类是游客,使用该系统方便校内路线查询;一类是管理员,可以使用该系统查询…...
立体库堆垛机控制程序手动功能实现
手动操作功能模块 手动前后保护锁 *************提升手动程序段 手动上升,下降保护锁 **********货叉手动程序段...
git commit提交报错
git commit -m 名字’时报一下错误: [FAILED] npm run lint-staged:js [FAILED] [FAILED] npm run lint-staged:js [FAILED] [SUCCESS] Running tasks for staged files..npm ERR! code EPERM npm ERR! syscall open npm ERR! path C:\Program Files\nodejs\node_c…...
OpenSIPS自定义统计项目
有朋友问,怎么统计ops每日的呼叫量 这就是需要自定义统计项目 我第一感觉是dialog模块 后来又查了下资料,statistics模块更合适,Kamailio也有同名模块...
python数据结构与算法-02_数组和列表
线性结构 本节我们从最简单和常用的线性结构开始,并结合 Python 语言本身内置的数据结构和其底层实现方式来讲解。 虽然本质上数据结构的思想是语言无关的,但是了解 Python 的实现方式有助于你避免一些坑。 我们会在代码中注释出操作的时间复杂度。 数…...
AI 创作者指南:附录工具包
📦 附录工具包 “工具不是答案,但能让你更快找到答案。” 第五部分压轴刚聊完“人类永远有护城河”,你现在从灵感到商业化、从伦理到未来,全链路都打通了,是不是心里满满的成就感?😊 来,重头戏到了——📦 附录工具包! 这可是我给你准备的“创作百宝箱”,全都是现…...
Swift-Corelibs-Foundation 架构演进:从 Objective-C 到 Swift 的完整迁移指南
Swift-Corelibs-Foundation 架构演进:从 Objective-C 到 Swift 的完整迁移指南 【免费下载链接】swift-corelibs-foundation The Foundation Project, providing core utilities, internationalization, and OS independence 项目地址: https://gitcode.com/gh_mi…...
OpenClaw镜像体验:Qwen3.5-9B云端部署避坑指南
OpenClaw镜像体验:Qwen3.5-9B云端部署避坑指南 1. 为什么选择云端镜像而非本地部署 去年冬天,当我第一次尝试在本地MacBook Pro上部署OpenClaw时,整整浪费了两个周末的时间。Node版本冲突、Python依赖缺失、CUDA驱动不兼容——这些看似简单…...
从防御者视角复盘:当你的Win11突然断网,如何快速排查是不是遭遇了ARP欺骗?
从防御者视角复盘:当你的Win11突然断网,如何快速排查是不是遭遇了ARP欺骗? 办公室里突然有人喊"网络断了",你的Win11电脑明明显示Wi-Fi已连接,却打不开任何网页。这种情况可能不只是简单的路由器故障——ARP…...
别急着重烧系统!卡在Starting Kernel时,先检查uboot的mmc分区表(以imx6ull为例)
嵌入式系统启动卡在Starting Kernel?先别急着重烧系统! 当你满怀期待地按下开发板电源键,串口终端却无情地定格在"Starting kernel..."这一行时,那种挫败感每个嵌入式开发者都深有体会。大多数人的第一反应是怀疑内核镜…...
快速验证openclaw抓取能力:用快马一键生成部署原型
最近在做一个内容抓取的小项目,尝试用openclaw框架快速搭建原型。这个开源机器人框架功能强大,但配置起来确实有点麻烦,特别是环境依赖和部署环节。经过一番折腾,我发现用InsCode(快马)平台可以省去很多重复劳动,分享下…...
无人水下航行器(UUV)与无人航空系统(UAS)时空会合关键技术研究附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...
ECDH算法避坑指南:OpenSSL和Node.js中的椭圆曲线参数选择
ECDH算法实战避坑指南:跨平台椭圆曲线参数选择与性能优化 在构建现代加密通信系统时,ECDH(椭圆曲线迪菲-赫尔曼密钥交换)算法因其高效性和安全性已成为TLS协议栈的核心组件。然而,当开发者需要在OpenSSL和Node.js等不同…...
万象视界灵坛保姆级教程:Bright-Pixel UI下上传图片+输入神谕标签全流程
万象视界灵坛保姆级教程:Bright-Pixel UI下上传图片输入神谕标签全流程 1. 教程概述 万象视界灵坛是一款基于OpenAI CLIP技术的高级多模态智能感知平台,通过独特的Bright-Pixel UI设计,将复杂的图像语义分析转化为直观有趣的交互体验。本教…...
MarkEdit 文本编码处理技术深度解析
MarkEdit 文本编码处理技术深度解析 【免费下载链接】MarkEdit Just like TextEdit on Mac but dedicated to Markdown. 项目地址: https://gitcode.com/gh_mirrors/ma/MarkEdit MarkEdit 是一款专为 Markdown 设计的文本编辑器,如同 Mac 上的 TextEdit 但专…...
