JavaScript实现单词自动折行算法,提高前端开发效率

16 min read

以下是一个简单的JavaScript单词折行算法:

function wordWrap(str, width) {
  let result = "";
  let line = "";
  const words = str.trim().split(" ");

  for (let i = 0; i < words.length; i++) {
    const word = words[i];
    if (line.length + word.length <= width) {
      line += word + " ";
    } else {
      result += line.trim() + "\n";
      line = word + " ";
    }
  }

  return result + line.trim();
}

此算法将一个字符串和一个宽度作为输入,并返回已包装的字符串。它首先使用trim()方法从字符串中删除任何前导或尾随空格,并使用split()方法将其拆分为单独的单词。然后,它遍历每个单词,并使用if语句将单词添加到当前行中,直到达到指定的宽度。一旦当前行已满,它将当前行添加到结果字符串中,并将行重置为下一个未包括在当前行中的单词。最后,它返回完全包装的字符串。