笔试之:数组去重

本文主要探讨在JavaScript笔试中常见的数组去重问题,重点介绍使用indexOf方法实现去重的原理和代码示例,并提及ES6中Set数据结构在数组去重的应用。

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

笔试是能力表现得第一个体现,我几乎每次面试都有笔试题,来来回回好几次,今天先整理几道题。
1、数组去重
这是一个简单而且出现率达到90%的题目,我也会去看好几种方法,真的是越深入学js,答案越是多。
这里也只是说一种,用indexOf()方法:w3c这样定义它:indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果没有找到匹配的字符串则返回 -1。
语法

string.indexOf(searchvalue,start)

searchvalue 必需。规定需检索的字符串值。
start 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 string Object.length - 1。如省略该参数,则将从字符串的首字符开始检索。
代码:

//判断返回数组的索引是否相等,就是它第一次出现的位置
var arr1 = [1, 23, 44, 1, 1, 2, 3, 4, 3, 4];
var newarr = [];
function unique(arr){
	//循环
	for(var i = 0; i < arr.length; i ++){
		//console.log(arr.indexOf(arr[i]));//返回的是索引
		if(arr.indexOf(arr[i]) != i){//如果index值不相等,则把它放进数组
			arr.splice(i,1);
			i--;
		}
	}
	return arr;
}
var a1 = unique(arr1);
console.log(arr1);
console.log(a1);
//[ 1, 23, 44, 2, 3, 4 ]
//[ 1, 23, 44, 2, 3, 4 ]

es6方法:
//Set数据结构,它类似于数组,其成员的值都是唯一的
//Set 本身是一个构造函数,用来生成 Set 数据结构。

function unique2(array) {
            return Array.from(new Set(array)); // 利用Array.from将Set结构转换成数组
        }
console.log(unique2([1, 4, 2, 9, 3, 5, 6, 7, 4]));
        // 结果是[ 1, 4, 2, 9, 3, 5, 6, 7 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值