有一个字符串有很多is,写一个方法只保留一个is?
1 2 3 4 5 6 7 8 9
function deleteIs(str){ var index = str.search("is"); var left = str.slice(0,index+2); var right = str.slice(index+2,str.length); right = right.split("is").join(""); return left.concat(right); } console.log(deleteIs("thisismybook"));//thismybook
有3个-10-10之间的整数,写一个方法这三个数一共有多少可能相加等于10。
改写数组的push方法,保持原有逻辑,添加一个console.log(arguments),即push什么打印什么。
1 2 3 4 5
Array.prototype.push = function(val){ console.log(val); } var temp = [1,2,5]; temp.push(7);//打印7
传入一个无序数组,要求n数相加,获取特定的sum
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
function getResult(arr,n,sum){ if(n==0&&sum==0){ return true; } if(n<0){ return false; } if(n>0){ for(var i in arr){ var temp = arr.slice(i+1,arr.length); return getResult(temp,n-1,sum-arr[i]) || getResult(temp,n,sum); } } } console.log(getResult([1,2,3,4],2,7)); //true
用正则表达式去掉两边的空格
1 2 3 4 5 6
function remove(str){ var reg = /(^s+)|(s+?)/g; return str.replace(reg,""); } console.log(remove("this is book"));//"thisisbook"
给定一个非空的数字数组,数组有且只有一个非重复项,实现一个方法获取落单项
1 2 3 4 5 6 7 8 9 10 11 12 13
function getSingleNumber(arr){ var temp = []; for(var i in arr){ if(temp.indexOf(arr[i]) == -1){ temp.push(arr[i]); }else{ temp.splice(temp.indexOf(arr[i]),1); } } return temp[0]; } console.log(getSingleNumber([0,1,0,0])); //1
请实现一个函数merge,传入一个数组,合并数组中【相邻且重复】的元素
1 2 3 4 5 6 7 8 9 10 11 12
function merge(arr){ var reg = /(.)1*/g; var str = arr.join(""); str = str.replace(reg,"$1"); arr = str.split(""); arr = arr.map(function(val){ return parseInt(val); }) return arr; } console.log(merge([3,2,2,4,5,5,6,2,1]));//[3,2,4,5,6,2,1]
近期评论