面试大题总结

版权声明:转载请先告知哦 https://blog.csdn.net/PINK789/article/details/88343752

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

5、flex布局

6、手写函数防抖和函数节流

7、es6

猜你喜欢

转载自blog.csdn.net/PINK789/article/details/88343752
今日推荐