当前位置: 首页 > news >正文

includes()方法和indexOf()方法数组去重

数组去重常用的两种方法

includes()方法和indexOf()

1.includes()数组去重实现原理

includes()方法来判断一个数组是否包含一个指定的值,根据情况,如果包含就返回true,不包含就返回false
Array.isArray() 用于确定传递的值是否是一个数组

var arr = [1,1,15,15,true,false,true,false,NaN,0,"0"]
function fn(arr){
	if(!Array.isArray(arr)){
		cosloe.log('type error!')
		return
	}
var array = []
for(var i = 0; i < arr.length; i++){
		if(!array.includes(arr[i])){
		array.push(arr[i])
		}
	}
	return array
}
console.log(fn(arr))
//(7) [1, 15, true, false, NaN, 0, "0"]

2、indexOf()数组去重实现的原理

数组的indexOf()方法可返回某个指定的元素在数组中首次出现的位置。该方法首先定义一个空数组arrray,然后调用indexOf方法对原来的数组进行遍历判断,如果元素不在array中,则将其push进array中,最后将res返回即可获得去重的数组.(判断新创建的数组中是否有a[i],如果没有indexOf返回-1,并且把a[i]放入该新数组中)

var arr = [1,1,15,15,true,false,true,false,NaN,0,"0"]
function fn(arr){
	if(!Array.isArray(arr)){
		console.log('type erreor')
		return
	}
	let array = []
	for(var i = 0; i < arr.length; i++){
		if(array.indexOf(arr[i]) === -1){
			array.push(arr[i])
		}
	}
	return array
}
console.log(fn(arr))
//[1, 15, true, false, NaN, 0, "0"]

相关文章:

  • KVM之网桥创建(ubuntu 环境)
  • orcale创建临时表空间,表空间,创建用户
  • 事件监听
  • Google Guava14.0 瓜娃学习笔记
  • 前端实现图片懒加载(lazyload)的两种方式
  • axios封装,api接口封装统一管理
  • Bzoj1208 [HNOI2004]宠物收养所
  • 关于虚拟DOM和Diff算法的理解及应用场景
  • python selenium webdriver入门基本操作
  • 对ChemDraw Prime 16.0你了解多少
  • vue项目打包上线的流程
  • css-css权威指南学习笔记1
  • 前端常见面试题总结
  • 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目
  • 解决“chrome提示adobe flash player 已经过期”的小问题
  • java概述
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Lucene解析 - 基本概念
  • MySQL的数据类型
  • Python socket服务器端、客户端传送信息
  • React中的“虫洞”——Context
  • vue-cli3搭建项目
  • Vue全家桶实现一个Web App
  • Web Storage相关
  • windows下使用nginx调试简介
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 诡异!React stopPropagation失灵
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 赢得Docker挑战最佳实践
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 选择阿里云数据库HBase版十大理由
  • ​secrets --- 生成管理密码的安全随机数​
  • #QT(一种朴素的计算器实现方法)
  • #WEB前端(HTML属性)
  • (12)目标检测_SSD基于pytorch搭建代码
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (31)对象的克隆
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (ros//EnvironmentVariables)ros环境变量
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (二)PySpark3:SparkSQL编程
  • (二)学习JVM —— 垃圾回收机制
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET 事件模型教程(二)
  • .NET运行机制
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @JoinTable会自动删除关联表的数据