JS笔试题--数组去重的四种方法

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

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

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().点击即可这是一个链接

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

发布了20 篇原创文章 · 获赞 1 · 访问量 272

猜你喜欢

转载自blog.csdn.net/weixin_45743297/article/details/103747149