限制条件补全代码系列题

题目一.a和b两个变量,不用第三个变量来切换两个变量值

var a=5;
var b=6;
a=a+b;
b=a-b;
a=a-b;
alert(a);
alert(b);

题目二.有一个数n=5,不用for循环,怎样返回[1,2,3,4,5]这样的数组

方法一.用递归来进行遍历

var n=5;
function show(){
	var arr=[];
	return (function(){
        arr.unshift(n);
        n--;
        if(n!=0){
        	arguments.callee();
        }
        return arr;
	})();	
}
alert(show(n));

方法二.用正则来匹配模拟次数

var n=5;
var arr=[];
arr.length=n+1;  
var arr2=[];
var str=arr.join("a");     中间连接符用a,要六个数才五个逗号,所以length=n+1
var re=/a/g;
str.replace(re,function(){
	arr2.unshift(n--);
});
alert(arr2);

题目三.一个数n,当n<100就返回n,否则返回100,但是不能用if else、三目、switch等

方法一.Math.min

var n=150;
function show(){
	return Math.min(n,100);
}
alert(show(n));

方法二.用数组排序

var n=50;
function show(){
	var arr=[n,100];
	arr.sort();
	return arr[0];
}
alert(show(n));

方法三.根据数字转字符串后的长度判断,用到for循环,如果长度小于3,就返回自身,大于等于3就返回100

var n=150;
function show(){
	var str="n";
	for(;str.length<3;){
         return n;
	}
	for(;str.length>=3;){
         return 100;
	}
}
alert(show(n));

方法四.json

var n=50;
function show(){
	var json={};
	var m=n<100||json;        //m是布尔值
	for(var attr in m){
		return 100;
	}
	return n;
}
alert(show(n));

 

转载于:https://www.cnblogs.com/zhangwenkan/p/4248729.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值