js判断一个数组中是否有重复的数组/ 一个数组中对象的某个属性值是否重复

这篇具有很好参考价值的文章主要介绍了js判断一个数组中是否有重复的数组/ 一个数组中对象的某个属性值是否重复。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目中往往会遇到对数组处理是否存在某个形同的值。或者对象中是否存在形同元素…
下列方法常用,但不限于。

一、普通数组数据
1.1对数组进行排序,对比上一个元素和下一个元素是否相等,若相等,则说明数组有重复值。

const arr=['111','222','333','444','555'];
//判断数组元素是否有重复
var sarr = arr.sort();
for(let i=0; i<sarr.length; i++){
    if(sarr[i] == sarr[i+1]){
        alert("数组中重复元素是:" + sarr[i])
    }
}

js判断数组对象是否有重复数据,javascript,前端,开发语言
1.2:先将数组转换成字符串,再遍历数组,在字符串中移除当前的数组元素之后还能找到该元素,则说明数组有重复值。

	const arr=['111','111','333','444','555'];
	var str = arr.join(",") + ",";
	for(let i=0; i<arr.length; i++){
	    if(str.replace(arr[i]+",", "").indexOf(arr[i]+",") > -1){
	        alert("数组中重复元素是:" + arr[i]);
	        break
	    }
	}

js判断数组对象是否有重复数据,javascript,前端,开发语言
1.3先利用ES6语法将数组去重,之后再与原数组比较长度,若长度小于原数组,则说明数组有重复值。
Array.from(new Set(arr)).length < arr.length

//ES6去重方法
// 1. 拓展运算符 + new Set方法

const arr=['111','222','333','444','555'];
let arr1 = [...new Set(arr)]
if(arr2.length < arr.length) {
	console.log('有重复')
}else{
	console.log('没有重复')
}

js判断数组对象是否有重复数据,javascript,前端,开发语言

	// 2. Array.from + new Set方法
	const arr=['111','111','333','444','555'];
	let arr2 = Array.from(new Set(arr))
	if(arr2.length < arr.length) {
		console.log('有重复')
	}else{
		console.log('没有重复')
	}

js判断数组对象是否有重复数据,javascript,前端,开发语言

二、对象元素数组
需求:要判断下方这个数组中,name/age是否有重复的数据.

2.1,先利用ES6语法Set将数组去重,之后再原数组比较长度,若长度小于原数组,则说明数组有重复值

	const arr=[
	  {name:"张三3",age:12},
	  {name:"张三2",age:12},
	  {name:"张三",age:12},
	  {name:"张三1",age:12}
	];
	const newListLength=new Set(arr.map(item=>item.name)).size;
	const listLength=arr.length;
	if(listLength>newListLength){
	  console.log("重复");
	}

js判断数组对象是否有重复数据,javascript,前端,开发语言

2.2,先将数组转换成字符串,再遍历数组,在字符串中移除当前的数组元素之后还能找到该元素,则说明数组有重复值。

const arr=[
  {name:"张三3",age:12},
  {name:"张三2",age:12},
  {name:"张三",age:12},
  {name:"张三1",age:12}
];
/*
  replace不用正则的话,只会替换掉第一个符合条件的数据
  之所以加逗号,是因为这样可以确保数据的唯一性,如果不加逗号,会导致数据不对,比如说第三条数据"张三",replace之后还会查到第四条数据中的"张三",所以得加上逗号确保唯一性
*/
const newArr=arr.map(item=>item.name);
const str=newArr.join(",")+",";
const flag=newArr.some(item=>{
  return str.replace(item+",","").indexOf(item+",")>-1
});
if(flag){
  console.log("重复");
}

js判断数组对象是否有重复数据,javascript,前端,开发语言
2.3,利用findIndex或者indexOf查到的下标和当前循环的下标对比是否相等

	//indexOf查找是否有重复的
	const arr=[
	  {name:"张三3",age:12},
	  {name:"张三2",age:12},
	  {name:"张三",age:12},
	  {name:"张三1",age:12}
	];
	const newArr=arr.map(item=>item.name);
	const isRepeat=newArr.some((item,index,arr)=>arr.indexOf(item)!=index);
	if(isRepeat){
	  console.log("重复");
	}

js判断数组对象是否有重复数据,javascript,前端,开发语言

	//findIndex查找是否有重复的
	const arr=[
	  {name:"张三3",age:12},
	  {name:"张三2",age:12},
	  {name:"张三",age:12},
	  {name:"张三1",age:12}
	];
	const newArr=arr.map(item=>item.name);
	const isRepeat=newArr.some((x,index,arr)=>arr.findIndex(y=>y==x)!=index);
	if(isRepeat){
	  console.log("重复");
	}

js判断数组对象是否有重复数据,javascript,前端,开发语言文章来源地址https://www.toymoban.com/news/detail-702193.html

到了这里,关于js判断一个数组中是否有重复的数组/ 一个数组中对象的某个属性值是否重复的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JS中判断某个字符串、数组等是否包含某个值

    方法一: indexOf()   (推荐)   indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。 方法二:match()   match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 方法三: search()   search() 方法

    2024年02月03日
    浏览(112)
  • JavaScript判断数组对象是否含有某个值的方法(6种)

    文章内容 文章链接 vue3 antd table表格的增删改查(一) input输入框根据搜索【后台管理系统纯前端filter过滤】 https://blog.csdn.net/XSL_HR/article/details/128072584?spm=1001.2014.3001.5501 vue3 antd table表格的增删改查(二) input输入框根据搜索【后台管理系统 请求后端接口 前后端

    2024年02月06日
    浏览(63)
  • 前端算法题——给定一个整数数组,判断是否存在重复元素。

    题目可以理解为如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false。 这题一看就是 计数问题,题目中“如果存在一值在数组中出现至少两次”这句话就告诉我们记录每一个数字出现的次数就能解决问题了。  我们遍历数组时,

    2024年02月20日
    浏览(88)
  • Js:获取数组对象重复属性值和数组对象去重

    对象数组去重分为两类:根据某一属性去重,和去重完全相同对象(属性属性值都相同) 一.数组嵌套对象,根据对象某一属性去重 二、数组嵌套对象,去重完全相同对象(属性属性值都相同) 整理如下: 首先、循环数组,拿到对象的所有属性组成的数组; 其次、循环属性

    2024年01月21日
    浏览(52)
  • 前端基础面试题:如何判断对象是否具有某属性?遍历数组的方法有哪些?

    一、如何判断对象具有某属性? 如: let obj={name:\\\'zhangsan\\\',age:21} 有以下方法 ( property 为属性名的变量,实际上是key,键名): 1. property in obj 效果如图: in 运算符 2. Reflect.has(obj, property) 效果如图: 关于 Reflect: ① 它是JS的一个内置对象,无构造函数,可以用它遍历对象的key,如

    2023年04月08日
    浏览(61)
  • 利用java语言中的stream流操作判断一个数组中是否有重复元素

    判断数组中是否有重复元素可以说是每一个编程语言初学者都会遇到的题目,常见的各种搜索算法本文不做赘述了,我们这次介绍的是利用java语言中特有的stream流操作来判断通用类型数组是否包含重复元素。 首先我们声明一个泛型方法: 表明该方法适用于所有类型的数组。

    2024年02月12日
    浏览(50)
  • js中判断一个对象是否存在

    一、Boolean()方法 用Boolean()方法可以将Js中的任意数据类型转为布尔值: 二、用于判断xx是否存在 js一般会自动执行Boolean()方法,我们可以借此判断某个对象在js当前的执行环境中知否存在。如: 又如,可以判断当前环境下某个对象是否存在。 在为一个元素绑定了某个事件后,

    2024年02月13日
    浏览(60)
  • js之删除对象属性的三种方法 & 判断对象中是否有某一属性的四种方法

    js之删除对象属性的三种方法 判断对象中是否有某一属性的四种方法 示例 1、基础版 2、进阶版 1、删除一个对象上的属性 1.1、delete 语法 delete 对象.属性名 1.2、es6之解构赋值 1.3、es6之反射 语法 Reflect.deleteProperty(对象,属性名) 2、判断对象中是否有某一属性的四种方法 2.1、

    2024年02月13日
    浏览(50)
  • js合并数组对象(将数组中具有相同属性对象合并到一起,组成一个新的数组)

    1.原数组: 2.合并后数组: 3.实现方法: 4.测试: 1.原数组: 2.合并后数组: 3.实现方法一: 测试: 4.实现方法二: 测试:

    2024年02月08日
    浏览(62)
  • 判断数组中是否有重复元素

    给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 方法一:排序 在对数字从小到大排序之后,数组的重复元素一定出现在相邻位置中。因此,我们可以扫描已排序的数组,每次判断相邻的两个元素是否相等

    2024年02月16日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包