JavaScript教程-16-练习-利用object的特性去除数组重复项

本文通过介绍JavaScript对象的特性,重点讲解如何利用对象的属性唯一性来去除数组中的重复项。文中提供了一个相关练习,并鼓励读者积极参与。此外,作者还分享了丰富的学习资源和B站教学视频。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Object特点:object实例有什么特性呢?大家都知道,每个object实例都可以有很多是属性和方法,每个属性都可以保存唯一的一个值。也就是属性和值是一一对应的关系,也就是key-和value(键值对)的关系,前面我们利用这个特性模拟了java中的Map。也就是object实例的属性(key)是唯一的,但是值(value)却是不唯一的。接下来的这个练习就利用了这个特性:object实例的属性具有唯一性的特点

练习:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>去除数组重复项的练习</title>
		<script type="text/javascript">
			//在该练习中会定义若干个方法,如果大家对于js的方法的定义不熟悉,
			//可以学完方法后在对此处的内容多加练习。
			//不重复的只有1,2,3,4,5,6
			let arr = [1,2,3,2,5,6,1,2,1,2,5,4,3,2];
			//实现的思路:将数组的每个元素的值作为object实例的key,因为key的唯一性。实现了去重。
			//也就是需要将数组转换为object对象,然后去重后,再转换为数组。
			
			//定义方法,来实现将数组元素的key作为object实例的属性,保存到一个object实例中
			//参数为一个数组
			function arrayToObject(arr){
				//定义局部的object对象
				let obj = {};
				//将数组的元素的值作为对象属性并赋值
				for (let i=0 , j = arr.length ;i < j ;i++) {
					obj[arr[i]] = true;
				}
				//返回对象
				return obj;
			}
			
			//定义方法,实现将一个对象的属性,存入一个数组中。
			//参数为一个object实例,返回一个新的数组
			function keysToArray(obj){
				//定义数组
				let arr = [];
				//遍历对象的属性,将属性添加到object对象中。
				for(let attr in obj){
					//如果attr是obj的属性
					if(obj.hasOwnProperty(attr)){
						//将attr压入数组。顶部添加
						arr.push(attr);
					}
				}
				//最后返回数组
				return arr;
			}
			
			//实现方法,对指定的数组去重,返回一个新的数组
			function unique(arr){
//				let obj = arrayToObject(arr);
//				let newArr = keysToArray(obj);
//				return newArr;
				//上面三行代码,可以写成一行
				return keysToArray(arrayToObject(arr));
			}
			
			//测试。调用 方法,并打印
			alert(unique(arr));//打印结果为:1,2,3,4,5,6
		</script>
	</head>
	<body>
	</body>
</html>

PS:笔者有大量的学习资料:java、python、大数据、人工智能、前端等。需要的小伙伴请加群:711408961

笔者的b站中有一些教学视频分享。感兴趣的小伙伴可以关注:https://space.bilibili.com/412362068

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值