数组去重的四种方法
程序员文章站
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()
小哥哥,小姐姐,看到这里其实这道题,很可以了.
祝你面试成功,找到好工作.
上一篇: Django框架初体验(一)