今天看到一则面试题 就是反转字符串 比如 'abcdfe' 变成 'efdcba' 这个简单的算法 应该是很简单的
var a ='abcdef'复制代码
- 第一种 也是很简单的
var a = 'abcdef'
console.log(a.split('').reverse().join('')) //fedcba复制代码
var a = 'abcdef'
console.log(a.split('')) //["a", "b", "c", "d", "e", "f"]
//split() 将字符串分割成数组 参数来指定以哪种为界限来分割
console.log(a.split('').reverse()) // ["f", "e", "d", "c", "b", "a"]
//reverse() // 改变数组 将数组中的元素倒序排列
console.log(a.split('').reverse().join('')) //fedcba
// join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。复制代码
- 第二种
var str ='abcde'
var strarr = str.split('')
console.log(strarr) //["a", "b", "c", "d", "e"]
var arr = new Array
while(strarr.length) {
arr.push(strarr.pop()) //pop() 返回最后一个元素 这样循环添加到新的数组
}
console.log(arr.join('')) //["f", "e", "d", "c", "b", "a"]复制代码
- 第三种
var str ='abcde'
var strarr = str.split('')
console.log(strarr)
var newstr = ''
for(var i =str.length-1; i>=0; i--) {
console.log(str[i])
newstr +=str[i]
}
console.log(newstr) // edcba复制代码
方法还有很多 就不一一去写了 因为很简单 es6 更简单 console.log([...str])