js数组不同类型元素去重

2023-11-17

<html>

<body>
    <script>
        Array.prototype.removeRepeatItem = function () {
            let len = this.length;
            let obj = {};
            for (let i = 0; i < len; i++) {
                if (!obj[this[i] + typeof i]) {
                    obj[this[i] + '*' + typeof this[i]] = this[i];
                }
            }
            let result = [];
            for (let key in obj) {
                result.push(obj[key]);
            }
            console.log(obj);
            return result;
        }
        let myArr = [1, 1, 2, 1, '1', true, 'true', 2, 'abc', 'true', true, false, {}, {}, null, undefined, 'null', 'undefined'];
        console.log(myArr.removeRepeatItem());
    </script>
</body>

</html>
  • 采用对象存储的形式
  • key用元素+*+元素类型的方式命名,value是对应的数组元素
  • 没有就创建
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js数组不同类型元素去重 的相关文章

  • 如果字符串不匹配,.split() 返回什么?

    在此 JavaScript 代码中 如果变量data没有那个角色 那么 split 会返回什么呢 x data split 它会是原始字符串的数组吗 是的 根据ECMA262 15 5 4 14 String prototype split
  • setInterval() 如何影响性能?

    我们正在使用 Twitter Bootstrap 作为框架构建一个 Web 应用程序 但在显示 隐藏工具提示时遇到问题 除了尝试找到实际问题的解决方案之外 我还有一个关于我们同时使用的解决方法的问题 从性能角度来看 使用 setInterv
  • chai-http/superagent : 设置多部分表单字段的 Content-Type

    在集成测试中上传文件如下 chai request server instance post profile photo 0 set Access Token accessToken set API Key testConfig apiKe
  • 如果列表中的某个字符位于该字符之前,请选择该字符

    我有这个正则表达式 a z s gmi 该正则表达式选择 从我的文字中 sme a eliezovce 2015 Spolo ne pre Eur pu Osl vili aj 940 但我只想选择 没有 如果列表中的某些字符 a z 之前
  • JavaScript 原型继承和 html canvas

    我是一名 Ruby 开发人员 最终决定认真学习 JavaScript 所以我买了一些书 开始深入研究 但当我试图理解原型继承时 我很快就陷入了困境 这本书的例子之一如下 给定一个 Shape 其原型有一个绘制方法 以及两个子形状 一个 Tr
  • AngularJS 和 Apiary.IO - 无法读取任何响应标头?

    我使用 Apiary io 模拟我的 API 但不知怎的 我无法使用 angularJS 从响应对象中读取任何标头 我确信我至少通过检查 firebug 正确设置了 Content Type application json Angular
  • 移动浏览器上的 Javascript / jQuery 页面更改事件

    我正在设计一个移动网站 同时考虑所有领先的浏览器 Safari Chrome Dolphin Opera 我想显示一个 正在加载 元素页面导航 更改 请求新页面 我无法在锚标签上使用点击事件 因为有很多锚标签存在preventDefault
  • JavaScript 中的可选参数

    如果缺少剩余参数 为什么该函数不会抛出错误 showStatistics Mark Teixeira New York Yankees 1st Base 这是定义的函数 function showStatistics name team p
  • 如何设置黄瓜环境变量

    我有以下 package json name newcucumber version 1 0 0 main index js scripts test node modules bin cucumber js firefox node mo
  • 递归链接 Promise

    我正在开发一个简单的 Windows 8 应用程序 我需要在其中从网站获取一组数据 我正在使用 WinJS xhr 来检索此数据 它返回一个 Promise 然后 我将回调传递到此 Promise 的 then 方法中 该方法为我的回调提供
  • Puppeteer 无法在 VPS (DigitalOcean) 上工作

    我在水滴中数字海洋 https www digitalocean com 我收到这个错误 node 5549 UnhandledPromiseRejectionWarning TimeoutError Navigation Timeout
  • Firefox CSS 旋转与 Chrome 旋转不同

    我想制作一个 3D 矩形 平行六面体 用户可以用箭头移动它 它在 Chrome 中工作得很好 但在 Firefox 中 一些转换 实际上很多 与 Chrome 不同 看着this https jsfiddle net 7273yur9 2
  • JavaScript - 类根据条件扩展

    事情是这样的 我有一个名为 A 的主课 我希望这个班级能够扩展 B 级 class A extends B 但事实上 我希望 B 类在特定条件下扩展 C D 或 E class B extends B1 or class B extends
  • jQuery 和所有 .js 文件无法在本地运行,只能在外部运行

    我有一个奇怪的问题 我正在编写一个网站 包括 jQuery 和一些插件 它们存储在 js 文件夹中 当我尝试通过浏览器 jQuery 打开它时 插件和所有自定义脚本都不起作用 也许这与我的代码有关 但不这么认为 当然 当我在外部包含 jQu
  • 访问事件处理程序内的对象实例

    我有以下代码 var myObj inputs document getElementsByTagName input attachKeyEvent function for var i 0 i lt this inputs length
  • 使用 Lodash 循环 JavaScript 对象中的属性

    是否可以循环访问 JavaScript 对象中的属性 例如 我有一个 JavaScript 对象定义如下 myObject options property1 value 1 property2 value 2 属性将动态添加到该对象 有没
  • 我应该采取什么圆角方法?

    因此 关于圆角的信息并不缺乏 我已经经历过其中的大部分 我发帖是为了征求社区对这一点的意见 我的场景是 我们正在开发一个圆角相关设计 主要用于交互
  • angularjs 将 ngModel 从包装器指令传递到包装器指令

    我是 Angular 的新手 但仍然痛苦地纠结于自定义指令 我想重用这段 HTML
  • 如何连接/组合两个数组以连接成一个数组?

    我正在尝试将 JavaScript 中的 2 个数组合并为一个 var lines new Array a b c lines new Array d e f 这是一个简单的例子 我希望能够将它们组合起来 这样当读取第二行时 数组中的第四个
  • nodeJS exec 不适用于“cd”shell cmd

    var sys require sys exec require child process exec exec cd home ubuntu distro function err stdout stderr console log cd

随机推荐

  • Fsm serial

    In many older serial communications protocols each data byte is sent along with a start bit and a stop bit to help the r
  • 计算机组成原理-8、总线与输入输出系统

    前言 最近备研学习计算机组成原理的一些笔记 记得比较仓促 仅供个人参考 等明年会仔细结合自己的一些看法加以改进 如有不足之处 还请多多指教 文章目录 总线与输入输出系统 总线与输入输出系统概述 总线 总线类型与结构 总线的信息传输方式 总线
  • 操作系统实验三:用PV操作实现司机售票员进程同步(C语言实现)

    代码如下 driver spy cpp include
  • Docker + Jenkins 详细安装步骤

    一 安装Docker 1 安装依赖环境 yum y install yum utils device mapper persistent datalvm2 2 配置Docker镜像源 yum config manager add repo
  • 调试osgEarth(33)分页瓦片卸载器子节点的作用-(3)渲染遍历的帧号和时间设置-TerrainCuller赋值给可渲染图层--TerrainRenderData--深度摄像机

    继续调试 可见 在当前环境下 definelist为空 不会再有 OE IS DEPTH CAMERA 因此不是深度摄像机 果然为false 总结下 这里是通过摄像机的状态集的 definelist是否包含 OE IS DEPTH CAME
  • 论文阅读-多任务(2020)-KL4MTL:用于多任务学习的知识蒸馏方法

    KL4MTL 论文 Knowledge Distillation for Multi task Learning 地址 https paperswithcode com paper knowledge distillation for mu
  • 应用MATLAB求解线性代数题目(五)——特征值与特征向量

    目录 特征值和特征向量 相似矩阵 orth 将矩阵正交规范化 特征值和特征向量 我们先看一下特征值和特征向量的定义 可见 特征值可以通过特征方程 行列式 求得 则特征值与特征向量只存在于方阵中 根据MATLAB中的帮助文档 help eig
  • myeclipse 2019.4 使用

    在下主张开源 链接 https pan baidu com s 1953feWjM8p67LGl lLu9fg 提取码 o3d8 如有失效 请联系 QQ 1193754711 积分不富足的共同进步 在下需要积分 https download
  • 计算机网络第2章(物理层)

    计算机网络第2章 物理层 一 物理层的基本概念 二 物理层下面的传输媒体 2 1导引型传输媒体 2 2非导引型传输媒体 三 传输方式 3 1串行传输和并行传输 3 2同步传输和异步传输 3 3单向通信 双向交替通信 双向同时通信 四 编码与
  • Node.JS学习笔记: 基础篇

    基础概念 三大件 浏览器 服务器 数据库 1 浏览器 在这里主要是关注浏览器的作用是发送请求 比如发送一个HTTP请求 喂 把 index html的文档发给我 至于如何发送请求 服务器又如何处理请求 这方面需要HTTP TCP IP的知识
  • 95-30-012-Channel-AbstractNioChannel

    文章目录 1 概述 2 类图 3 NioUnsafe 4 AbstractNioChannel 4 1 Connect事件框架 4 2 FinishConnect事件框架 4 3 Flush事件细节 4 4 构造方法 4 5 doRegis
  • 系统变量

    系统变量 由 操作系统定义的数据存储位置 无论谁登录该计算机 该位置都相同 Administrators 组的用户可以添加新的变量或更改这些值 编辑本段变量设置实例 格式 变量名 实际含义 homedrive 当前启动的系统的所在分区 一般
  • Android路由方案ARouter分析

    一 路由方案 原生的路由方案缺点 显式 直接的类依赖 耦合严重 隐式 规则集中式管理 协作困难 Manifest扩展性较差 跳转过程无法控制 失败无法降级 ARouter的优势 使用注解 实现了映射关系自动注册 与 分布式路由管理 编译期间
  • Python 异常处理指南

    异常处理是编写健壮的 Python 程序时不可或缺的一部分 当程序运行中发生错误时 异常处理机制可以捕获并处理这些错误 从而保证程序的稳定性和可靠性 本文将为您介绍 Python 中的异常处理机制 并提供一些常见的异常处理技巧和示例代码 异
  • git init报错:‘git‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    背景 已经安装git 但是使用命令行git init的时候 报错 git 不是内部或外部命令 也不是可运行的程序 或批处理文件 原因 因为没有成功配置环境变量 所以我们要手动添加一个环境变量 解决方法 1 在桌面找到此电脑 右键 选择 属性
  • 并发控制五(封锁的粒度)

    封锁对象的大小称为封锁粒度 封锁对象可以是逻辑单元 也可以是物理单元 以关系数据库为例 封锁对象可以是这样一些逻辑单元 属性值 属性值的集合 元组 关系 索引项 整个索引直至整个数据库 也可以是这样一些物理单元 页 数据页或索引页 物理记录
  • CentOS7安装部署wordpress

    环境介绍 CentOS7 3安装部署wordpress 本环境主机运行在阿里云 部署方式为单节点部署 主机配置 系统 CentOS7 3 mini CPU 1核 内存 1GB 硬盘 60G 外网带宽 1Mbs 一 配置主机名 root lo
  • mysql explain ref const_MySQL EXPLAIN 详解

    一 介绍 EXPLAIN 命令用于SQL语句的查询执行计划 这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL 语句的 这条命令并没有提供任何调整建议 但它能够提供重要的信息帮助你做出调优决策 先解析一条sql语句 你可以看
  • pytorch 实现LSTM

    Pytorch基础知识点整理 梯度 下降 coding utf 8 from math import pi import torch import torch optim x torch tensor pi 3 pi 6 requires
  • js数组不同类型元素去重