js 字符串反转反转的两种方法

var str = "You don't touch mother fucker think twice.";

第一种方法运用api

 var strReverse = str.split(' ').reverse().join(' ');

分别打印

第二种方法:for循环加slice

function stringReverse(str) {
	var words = [],result = '',point = 0;
	for (var i = 0; i < str.length; i++) { //对字符串进行循环
		if (str[i] === ' ') { //如果遇到为空格从下标0开始分割 到第一个空格的地方就是下标3,这样就得到单词you
			words[words.length] = str.slice(point, i);
			point = i + 1; //这时point变为4,下一次循环分割就从单词d开始了,依次这样循环
		} else if (i === str.length - 1) { //到最后一个空格point加1,循环到标点符号就从twice的t截取一直到末尾
			words[words.length] = str.slice(point);
		}
	}
	console.log(words) //得到一个数组["You", "don't", "touch", "mother", "fucker", "think", "twice."]
	for (var j = words.length - 1; j > -1; j--) {//倒着循环数组
		result += (words[j] + ' ');
		
		// if (words[j] === 'You') {
		// 	result = result + words[j]
		// }else{
		// 	result = result + (words[j] + ' ')
		// }
	}
	return result; 
}

得到结果,末尾you多了一个空格 可以判断下用上面我注释的那段
在这里插入图片描述

运用到的一些知识点:下面大部分来自MDN
一、split: split() 方法使用指定的分隔符字符串将一个String对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置。
语法:stringObject.split(separator,limit)

  • separator:必需。字符串或正则表达式,从该参数指定的地方分割。
  • List item:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
例:
var myString = "Hello World. How are you doing?";
var splits = myString.split(" ", 3);//["Hello", "World.", "How"]

二、reverse: reverse() 方法将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。

例:
const a = [1, 7, 3];
a.reverse();// [3, 7, 1]

三、join: join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。
语法:arrayObject.join(separator)

  • separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
例:
var a = ['Wind', 'Rain', 'Fire'];
var myVar1 = a.join();      // "Wind,Rain,Fire"
var myVar2 = a.join(', ');  // "Wind, Rain, Fire"
var myVar3 = a.join(' + '); //"Wind + Rain + Fire"
var myVar4 = a.join('');    // "WindRainFire"

四、slice slice() 方法返回一个新的数组对象,这一对象是一个由 start和 end 决定的原数组的浅拷贝(包括 start,不包括end)。原始数组不会被改变。
语法:arrayObject.slice(start,end)

  • start:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
  • end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
var fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
var citrus = fruits.slice(1, 3);//['Orange','Lemon']

乏了

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值