当一个字符串被传递给一个带有返回语句的函数时,你如何在JavaScript中反转它,而不使用内置函数(.reverse(), . charat()等)?
当前回答
word.split('').reduce((acc, curr) => curr+""+acc)
其他回答
在JavaScript中有许多方法可以反转字符串。我正在记下我喜欢的三种方法。
方法一:使用反向函数:
function reverse(str) {
return str.split('').reverse().join('');
}
方法2:循环字符:
function reverse(str) {
let reversed = '';
for (let character of str) {
reversed = character + reversed;
}
return reversed;
}
方法3:使用reduce函数:
function reverse(str) {
return str.split('').reduce((rev, char) => char + rev, '');
}
我希望这对你有所帮助:)
没有内置方法?鉴于Javascript中的字符串是不可变的,您可能希望使用内置的方法,如split、join等。但这里有两种不使用这些方法的方法:
function ReverseString(str) {
var len = str.length;
var newString = [];
while (len--) {
newString.push(str[len]);
}
return newString.join('');
}
console.log(ReverseString('amgod')) //dogma
function RecursiveStringReverse(str, len) {
if (len === undefined)
len = str.length - 1;
if (len > 0)
return str[len] + RecursiveReverse(str, --len);
return str[len];
}
console.log(RecursiveStringReverse('Hello, world!'))// !dlrow ,olleH
//recursive implementation
function reverse(wrd) {
const str =wrd[0]
if(!wrd.length) {
return wrd
}
return reverse(wrd.slice(1)) + str
}
其中一种方法也可以是在使用分割法后再使用还原法进行逆向。
函数reverse(str) { 返回str.split(”)。reduce((rev, currentChar) => currentChar + rev, "); } console.log(反向('苹果')); console.log(反向('你好')); console.log(反向(“问候!”);
使用扩展语法的清晰方式:
const reverseString = str => [...str].reverse().join(''); console.log(reverseString('ABC'));