码迷,mamicode.com
首页 > 其他好文 > 详细

限制条件补全代码系列题

时间:2015-01-25 20:53:10      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

题目一.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));

 

限制条件补全代码系列题

标签:

原文地址:http://www.cnblogs.com/zhangwenkan/p/4248729.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!