面试中常见的小程序题

  • function unique1(arr){
    //i从1开始遍历arr中每个元素,同时声明数组r,初始化一个元素为arr中第0个元素
    for(var i=1,r=[arr[0]];i<arr.length;i++){
    //j从0开始遍历r数组中每个元素
    for(var j=0;j<r.length;j++){
    //如果r数组中当前元素等于arr中当前元素,就退出循环
    if(r[j]==arr[i]){break;}
    }//(遍历结束)
    //如果j等于r的length时
    //就将arr中当前元素追加到r的结尾
    j==r.length&&(r[r.length]=arr[i]);
    }//(遍历结束)
    return r;//返回r
    }去掉数组中重复的元素

方法1:
function deRepeat(arr){
	//i从1开始遍历arr中每个元素,同时声明数组r,初始化一个元素为arr中第0个元素
	for(var i=1,r=[arr[0]];i<arr.length;i++){
		//j从0开始遍历r数组中每个元素
		for(var j=0;j<r.length;j++){
			//如果r数组中当前元素等于arr中当前元素,就退出循环
			if(r[j]==arr[i]){break;}
			}//(遍历结束)
			//如果j等于r的length时
			//就将arr中当前元素追加到r的结尾
			j==r.length&&(r[r.length]=arr[i]);
		}//(遍历结束)
	return r;//返回r
}
方法2:
function deReapeat(arr){
	var hash=[];//声明空数组
	//将arr中第0个元素放入hash作为第一个key
	hash[arr[0]]=1;
	//i从1开始遍历arr中每个元素,同时声明数组hash,初始化一个元素为arr中第0个元素
	for(var i=1;i<arr.length;i++){
		//如果hash中不包含arr中当前元素作为key的元素
		if(hash[arr[i]]===undefined){
			//在hash中添加新元素,key为arr中当前元素,值为1
			hash[arr[i]]=1;//为数组中不存在的位置赋值,结果会自动添加新元素
		}
	}
	//技巧:获取hash中的所有key
	var keys=[], i=0;
	for(keys[i++] in hash);
	return keys;//返回keys
}
  • 冒泡法排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值