面试大题总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值