学习过程中将笔记整理跟大家分享,希望对大家也有所帮助,共同成长进步💪~\
如果大家喜欢,可以点赞或留言💕~~,谢谢大家⭐️⭐️⭐️~
文章首发于https://juejin.cn/post/7103362671730229284
1.push + indexOf
语法:string.indexOf(searchvalue,start)
参数:
定义用法:indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果没有找到匹配的字符串则返回 -1。
代码如下:
var arr = [1,2,3,4,5,6,6,6];
function newArr(array){
//创建一个新数组,利用indexOf去重
var newArr = [];
for(var i = 0; i < array.length; i++){
//如果临时数组里没有当前数组的当前值,则把当前值push到新数组里面
if(newArr.indexOf(array[i]) == -1){
newArr.push(array[i]);
}
}
return newArr;
}
console.log(newArr(arr))
2.filter + indexOf
filter 过滤 配合 indexOf 查找元素
注意:
- filter() 方法用于把Array中的某些元素过滤掉,然后返回剩下的未被过滤掉的元素
- filter() 不会对空数组进行检测;
- filter() 不会改变原始数组。
详细filter方法讲解可以去查阅其他人写的文章讲解的很详细
var arr = [1,2,3,4,5,6,6,6];
function newArr(array){
return array.filter((item, index) => {
return array.indexOf(item) === index;
})
}
console.log(newArr(arr))
3.object
利用对象属性名不能重复这一特点。如果对象中不存在,就可以给 push 进去,代码如下:
var arr = [1,2,3,4,5,6,6,6];
function newArr(array){
let newArr = [];
let obj = {};
for(let i = 0;i<array.length;i++){
if (!obj[array[i]]) {
newArr.push(array[i]);
obj[array[i]] = 1;
} else {
obj[array[i]] ++;
}
};
return newArr;
}
console.log(newArr(arr))
4.splice
利用 splice 进行切割,代码如下:
var arr = [1,1,2,9,6,9,6,3,1,4,5];
function newArr(arr){
for(let i = 0; i<arr.length; i++){
for(let j = i + 1; j<arr.length; j++){
if (arr[i] === arr[j]) {
arr.splice(j,1);
j--
}
};
}
return arr;
}
console.log(newArr(arr))
5.ES6中利用Set去重
此方法是所有去重方法中代码最少的方法,代码如下:
var arr = [1,1,2,9,6,9,6,3,1,4,5];
function newArr(arr){
//方法一 Array.from()解析类数组为数组
return Array.from(new Set(arr));
//方法二 es6的...解构
return [...new Set(arr) ];
}
console.log(newArr(arr))
//再说一个字符串去重
let str = "112223453";
let newstr = [...new Set(str)].join(""); // 12345
谢谢大家阅读⭐️⭐️⭐️,如果喜欢,可以点赞或留言哟💕