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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值