超过4个字符的反向单词

我想看看为什么我的函数总是返回 undefined?

输出应该是相同的字符串,但每个单词超过 4 个字符都颠倒了?

抱歉,我仍然是 JavaScript 的菜鸟,这让我发疯了哈哈

谢谢!

const reverseString = (data) => {
    data = data.split(' '); //convert to array
    data = data.forEach(function flipper (x) {
        x = x.split('');
        if (x.length > 4) {
            x = x.reverse();
        }
        x = x.join('');
    });
    return console.log(data);
}

reverseString('Hello World thank you so much');

回答

首先 forEach 返回undefined所以你不能直接分配到源数组。因为您需要将反向字符串分配给源数组。最好在 forEach 中使用回调函数的第三个参数(即源数组)

为每个

const reverseString = (data) => {
  data = data.split(" "); //convert to array
  data.forEach(function flipper(x, i, src) {
    x = x.split("");
    if (x.length > 4) {
      x = x.reverse();
    }
    x = x.join("");
    src[i] = x;
  });
  return data.join(" ");
};

const result = reverseString("Hello World thank you so much");
console.log(result);

使用地图很容易实现这一点

const reverseString = (data) => {
  return data
    .split(" ")
    .map(x => x.length > 4 ? x.split("").reverse().join("") : x)
    .join(" ");
};

const result = reverseString("Hello World thank you so much");
console.log(result);


以上是超过4个字符的反向单词的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>