js数组去重的10种有效方法 vue 数组去重(1),移动端前端前端开发

82 阅读2分钟

最后

好了,这就是整理的前端从入门到放弃的学习笔记,还有很多没有整理到,我也算是边学边去整理,后续还会慢慢完善,这些相信够你学一阵子了。

做程序员,做前端工程师,真的是一个学习就会有回报的职业,不看出身高低,不看学历强弱,只要你的技术达到应有的水准,就能够得到对应的回报。

学习从来没有一蹴而就,都是持之以恒的,正所谓活到老学到老,真正懂得学习的人,才不会被这个时代的洪流所淘汰。

开源分享:docs.qq.com/doc/DSmRnRG…

newArr.push(arr[i]);

}

}

return newArr;

}

console.log(unique([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));

// 结果是[1, 2, 3, 5, 6, 7, 4]

扫码免费查看1000条前端面题在这里插入图片描述


方法二

思路:先将原数组排序,在与相邻的进行比较,如果不同则存入新数组。

function unique2(arr) {

var formArr = arr.sort()

var newArr=[formArr[0]]

for (let i = 1; i < formArr.length; i++) {

if (formArr[i]!==formArr[i-1]) {

newArr.push(formArr[i])

}

}

return newArr

}

console.log(unique2([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));

// 结果是[1, 2, 3, 4,5, 6, 7]

方法3:

利用对象属性存在的特性,如果没有该属性则存入新数组。

function unique3(arr) {

var obj={}

var newArr=[]

for (let i = 0; i < arr.length; i++) {

if (!obj[arr[i]]) {

obj[arr[i]] = 1

newArr.push(arr[i])

}

}

return newArr

}

console.log(unique2([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));

// 结果是[1, 2, 3, 5, 6, 7, 4]

方法4: 利用数组的indexOf下标属性来查询。

function unique4(arr) {

var newArr = []

for (var i = 0; i < arr.length; i++) {

if (newArr.indexOf(arr[i])===-1) {

newArr.push(arr[i])

}

}

return newArr

}

console.log(unique4([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));

// 结果是[1, 2, 3, 5, 6, 7, 4]

方法 5: 利用数组原型对象上的includes方法。

function unique5(arr) {

var newArr = []

for (var i = 0; i < arr.length; i++) {

if (!newArr.includes(arr[i])) {

newArr.push(arr[i])

}

}

return newArr

}

console.log(unique5([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));

// 结果是[1, 2, 3, 5, 6, 7, 4]

方法6: 利用数组原型对象上的 filter 和 includes方法。

function unique6(arr) {

var newArr = []

newArr = arr.filter(function (item) {

return newArr.includes(item) ? '' : newArr.push(item)

})

return newArr

}

console.log(unique6([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));

// 结果是[1, 2, 3, 5, 6, 7, 4]

方法7: 利用数组原型对象上的 forEach 和 includes方法。

function unique7(arr) {

let newArr = [];

arr.forEach(item => {

return newArr.includes(item) ? '' : newArr.push(item);

});

return newArr;

}

console.log(unique7([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));

// 结果是[1, 2, 3, 4, 5, 6, 7]

方法8: 利用数组原型对象上的 splice 方法。

function unique8(arr) {

var i,j,len = arr.length;

for (i = 0; i < len; i++) {

总结

=============================================================

从转行到现在,差不多两年的时间,虽不能和大佬相比,但也是学了很多东西。我个人在学习的过程中,习惯简单做做笔记,方便自己复习的时候能够快速理解,现在将自己的笔记分享出来,和大家共同学习。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

个人将这段时间所学的知识,分为三个阶段:

第一阶段:HTML&CSS&JavaScript基础

第二阶段:移动端开发技术

第三阶段:前端常用框架

  • 推荐学习方式:针对某个知识点,可以先简单过一下我的笔记,如果理解,那是最好,可以帮助快速解决问题;如果因为我的笔记太过简陋不理解,可以关注我以后我还会继续分享。

  • 大厂的面试难在,针对一个基础知识点,比如JS的事件循环机制,不会上来就问概念,而是换个角度,从题目入手,看你是否真正掌握。所以对于概念的理解真的很重要。