可信网站申请,wordpress更新是乱码,wordpress 照片墙插件,上海app系统开发目录
1、includes
2、indexOf
3、Set结合Array.from
4、filter
5、reduce
6、使用双重for循环 介绍一下数组常用的去重复方法
以以下数组为例子来介绍#xff0c;一维的数字类型数组#xff1a;
const arr [1, 2, 2, 2, 3, 1, 6, 4, 4, 6, 5, 7]
1、includes funct…目录
1、includes
2、indexOf
3、Set结合Array.from
4、filter
5、reduce
6、使用双重for循环 介绍一下数组常用的去重复方法
以以下数组为例子来介绍一维的数字类型数组
const arr [1, 2, 2, 2, 3, 1, 6, 4, 4, 6, 5, 7]
1、includes function uniq(data) {let res []data.forEach((item) {if (!res.includes(item)) {res.push(item)}})return res;}console.log(uniq(arr));// [1, 2, 3, 6, 4, 5, 7]
2、indexOf function uniq(data) {let res []data.forEach((item) {const isTrue res.indexOf(item) -1if (isTrue) {res.push(item)}})return res;}console.log(uniq(arr));// [1, 2, 3, 6, 4, 5, 7]
3、Set结合Array.from
console.log(Array.from(new Set(arr)));
// [1, 2, 3, 6, 4, 5, 7]
4、filter function uniq(data) {return data.filter((item, index, all) {return all.indexOf(item) index})}console.log(uniq(arr));// [1, 2, 3, 6, 4, 5, 7]5、reduce function uniq(data) {return data.reduce((prev, curr) {if (!prev.includes(curr)) {prev.push(curr)}return prev;}, [])}console.log(uniq(arr));// [1, 2, 3, 6, 4, 5, 7]6、使用双重for循环
不推荐使用因为时间复杂度比较高在ES6之前最常用的传统方法 function uniq(arr) {for (let i0,len arr.length; i len; i) {for (let j i 1; j len; j) {if (arr[i] arr[j]) {arr.splice(j, 1);j--;len--;}}}return arr;}console.log(uniq(arr));// [1, 2, 3, 6, 4, 5, 7]