欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数组去重的四种方法

程序员文章站 2022-06-15 17:14:03
...

数组去重 面试题 的几种方法

数组去重是前端常见的面试题

var arr = [12,13,14,3,4,5,12,4,3]

请你使用两种方法去重arr

方法一

var arr = [12,13,14,3,4,5,12,4,3]

//数据结构 set 类似与数组  成员是唯一的
//这里还用到了 扩展运算符

var arr1 = [... new Set( arr ) ]
console.log(arr1)

我把以上代码放到谷歌about:blank地址栏中得到了以下结果
数组去重的四种方法

文章后面有 拓展运算符 的相关知识点 希望可以给到你启发

方法二

var arr = [12,13,14,3,4,5,12,4,3]

//声明一个新的数组arr2来保存在原数组中不重复的值
var arr2 = [ arr[0] ]
//将原数组中的第一个值放入新数组

//循环遍历原数组
for(var i=0; i<arr.length; i++){
	//循环遍历新数组
	for(var j=0; j<arr2.length; j++){
		//如果arr2 家已经有了arr [i],跳出循环,再次遍历
		if(arr2[j] == arr[i]){ break; }
		//如果遍历到arr2的最后一个值,放入arr2
		if(j == arr2.length-1 ){ arr2.push( arr[i] ) }
	}
}
console.log(arr2)

这个方法虽然比较笨拙,但是如果面试的话还是要会的,因为会的人特别多啊.
数组去重的四种方法

方法三

var arr = [12,13,14,3,4,5,12,4,3]

//Array.from()将类数组对象转换为真正数组
//这个方法和第一种方法很像

var arr3 = Array.from(new Set(arr))
console.log(arr3)

数组去重的四种方法

方法四

判断新创建的数组中是否有a[i],如果没有indexOf返回-1,并且把a[i]放入该新数组中

数组的indexOf()方法可返回某个指定的元素在数组中首次出现的位置

var arr = [12,13,14,3,4,5,12,4,3]

var arr4 = []
    for (var i = 0; i < arr.length; i++) {
        if (arr4.indexOf(arr[i]) === -1) {
            arr4.push(arr[i])
        }
    }

拓展运算符

示例:
// 当传入的参数不确定或者多个的时候,就可以当做arguments来使用
function show(...a){
    console.log(a); // [14, 12, 54, 33, 22]
}
show(14,12,54,33,22);

拓展运算符讲解,超详细.点击即可这是一个链接

Array.from()

ES6之Array.from().点击即可这是一个链接

小哥哥,小姐姐,看到这里其实这道题,很可以了.
祝你面试成功,找到好工作.

相关标签: JS