去除字符串首尾空格以及连续重复的地方

编码

/*
实现一个字符串头尾去除空格的函数
注意需要去除的空格,包括全角、半角空格
暂时不需要学习和使用正则表达式的方式
*/
function diyTrim(str) {
    var result = "";

    // do something

    return result
}

// 测试用例
console.log(diyTrim(' a f b    ')); // ->a f b
console.log(diyTrim('    ffdaf    ')); // ->ffdaf
console.log(diyTrim('1    ')); // ->1
console.log(diyTrim('  f')); // ->f
console.log(diyTrim('     a f b    ')); // ->a f b
console.log(diyTrim(' ')); // ->
console.log(diyTrim(' ')); // ->
console.log(diyTrim('')); // ->

/*
去掉字符串str中,连续重复的地方
*/
function removeRepetition(str) {
    var result = "";

    // do something

    return result;
}

// 测试用例
console.log(removeRepetition("aaa")); // ->a
console.log(removeRepetition("abbba")); // ->aba
console.log(removeRepetition("aabbaabb")); // ->abab
console.log(removeRepetition("")); // ->
console.log(removeRepetition("abc")); // ->abc

如以上代码,分别实现 diyTrim 及 removeRepetition 函数,并跑通代码中的测试用例。

<!DOCTYPE html>
<html>

<head>
</head>

<body>
    <script>

        function diyTrim(str) {
		var result=str;
		for(var index=0;index<str.length;index++){
			if(' '==str.charAt(index)||'  '==str.charAt(index)){
				result=str.substring(index+1);//从此参数开始到最后
				continue;
			}
			break;
		}
		str=result;
		for(var index=str.length-1;index>=0;index--){
			if(' '==str.charAt(index)||'  '==str.charAt(index)){
				result=str.substring(0,index);//从第一个参数开始到后一个参数前面一位
				continue;
			}
			break;
		}
		return result;
        }
        console.log(diyTrim(' a f b    ')); // ->a f b
        console.log(diyTrim('    ffdaf    ')); // ->ffdaf
        console.log(diyTrim('1    ')); // ->1 -->
        console.log(diyTrim('  f')); // ->f
        console.log(diyTrim('     a f b    ')); // ->a f b
        console.log(diyTrim(' ')); // ->
        console.log(diyTrim(' ')); // ->
        console.log(diyTrim('')); // ->

        /*
去掉字符串str中,连续重复的地方
*/
        function removeRepetition(str) {
          var array=new Array();
		  for(var i=0;i<str.length;i++){
			  if(array.length<1){
				  array.push(str.charAt(i));
				  continue;
			  }
			  if(array[array.length-1]==str.charAt(i)){
				  continue;
			  }
			  array.push(str.charAt(i));
		  }
		  return array.toString();
        }

        // 测试用例
        console.log(removeRepetition("aaa")); // ->a
        console.log(removeRepetition("abbba")); // ->aba
        console.log(removeRepetition("aabbaabb")); // ->abab
        console.log(removeRepetition("")); // ->
        console.log(removeRepetition("abc")); // ->abc
    </script>
</body>

</html>

 本次任务主要考察了,continue,以及break的用法,我自己没有做出来,研究了一下别人了,自己用码了一下,学习到了continue的用法,跳出了一次循环迭代,而break是结束整个循环,牢记以及array.push()方法,str.charAt(i)返回位置为1的字符串,主要还是continue,break和循环的巧妙运用来解决

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值