使用Reduce方法在JavaScript中反转字符串

3

我正在尝试使用Reduce方法在JavaScript中反转字符串。但是我遇到了一个错误。有人能建议我如何解决这个错误吗?

代码::

var reverseString = function(s) {
   return s.split("").reduce((rev, char) => char + rev, '');
};

reverseString(['h', 'e', 'l', 'l', 'o']);

输出 ::

图片描述


你正在传递一个数组。.split() 是用于字符串而不是数组的。我认为你想要使用 .join() - Aniket G
将字符串作为'hello'传递,而不是作为数组。 - Vappor Washmade
2
请发布实际的代码,而不是代码图像。没有人可以复制它来测试或修改答案。[mcve]同时提供预期结果。 - charlietfl
2
我认为.reduce()不是做这件工作的正确工具。 - Pointy
@HereticMonkey 我通常避免使用那个函数,因为它会改变输入的数组。不清楚 OP 是否希望他们的输入是字符数组还是字符串,但如果是前者,则使用.reverse是危险的。 - Asad Saeeduddin
显示剩余2条评论
3个回答

4
您差点就做到了,只需要删除 String.prototype.split() 方法,因为 String.split() 在数组上无法正常工作。例如:

var reverseString = function(s) {
  return s.reduce((rev, char) => char+rev, "").split("");
}
console.log(reverseString(['h', 'e', 'l', 'l', 'o']));


作为输入,我想使用[ ]而不仅仅是字符串。 - Riya
@Riya 现在检查一下。 - Vappor Washmade
输出应该为数组 ['o', 'l', 'l', 'e', 'h']。 - Riya
注意:在JavaScript中反转字符串并不那么容易。当使用组合字符时,这种方法会失败,因为它会同时反转字符的组合。 - Mark Baijens
注意:在Javascript中反转字符串并不那么容易。当使用组合字符时,这种方法会失败,因为它也会反转字符的组合。 - undefined

2

请确认您真的想要反转一个字符串数组。 如果是字符串,请尝试以下方法:

var reverseString = function(s) {
 return s.split('').reverse().join('');
}

console.log(reverseString('hello'));


0
function reverseString(str) {
  return str.split('').reduce((rev, char) => char + rev, "");
}

或者

function reverseString(str) {
  return str.split('').reverse().join('')
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接