1、JS数组去重
方案一:
(1)创建一个新数组;
(2)双层for循环,用参数数组的每一项和新数组中的每一项做对比;
(3)若不等,则将该项放入新数组;
(4)若相等,则继续比较参数数组的下一项;
function removeRepeat(arr){
var newArr = [arr[0]];
for(var i=1;i<arr.length;i++){
var repeat = false;
for(var j=0;j<newArr.length;j++){
if(arr[i]==newArr[j]){
repeat = true;
break;
}
}
if(!repeat){
newArr.push(arr[i]);
}
}
return newArr;
}
方案二:ES6的Set方法
var arr = [1,2,3,5,5,6,5];
const s = new Set(); //创建Set的实例s
s.forEach(x => s.add(x));
for(let i of s){
consoel.log(i);
} //1,2,3,5,6
s instanceof Array; //false
s instanceof Set; //true
方案三:先排序后去重
(1)对原数组排序并保存在arr2中;
(2)创建新数组,并保存排序后数组的第一项;
(3)用新数组的每一项与新数组的最后一项作比较,若不相等,则将arr2[2]放进新数组;
function removeRepeat(arr){
var arr2 = arr.sort();
var newArr = arr[0];
for(var i=1;i<arr.lenght;i++){
if(arr2[i]!==newArr[newArr.length-1]){
newArr.push(arr2[i]);
}
}
return newArr;
}
方案四:利用对象的属性去重
(1)先取出数组的
function removeRepeat(arr){
var newArr=[];
var json = {};
for(var i=0;i<arr.length;i++){
if(!json[arr[]]){
newArr.push(arr[i]);
json[arr[i]]=1;
}
}
return newArr;
}
方法五:利用数组的方法去重
function removeRepeat(arr){
var newArr=[];
for(var i=0;i<arr.length;i++){
if(newArr.indexOf(arr[i])==-1){
newArr.push(arr[i]);
}
}
return newArr;
}
2、vue.js 页面加载先调用哪几个钩子
3、angular指令中@,=,&的区别
4、排序算法
https://blog.csdn.net/PINK789/article/details/88345213