我有一个问题,我经过一段大约1000个单词等的单词,它的假设是将单词除以空格,最大行距为100个字符。行长度应尽可能接近,但不超过每行100个字符的限制。

问题是我只是每100个字符分割一次字符串(忽略单词)。由于四舍五入,这意味着在最后一次迭代时可能会遗留一些字符。

我想知道是否有人可以帮助我解决此问题并创建更好的功能来做到这一点

我的JS:

const paragraph = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam nibh. Nunc varius facilisis eros. Sed erat. In in velit quis arcu ornare laoreet. Curabitur adipiscing luctus massa. Integer ut purus ac augue commodo commodo. Nunc nec mi eu justo tempor consectetuer. Etiam vitae nisl. In dignissim lacus ut ante. Cras elit lectus, bibendum a, adipiscing vitae, commodo et, dui. Ut tincidunt tortor. Donec nonummy, enim in lacinia pulvinar, velit tellus scelerisque augue, ac posuere libero urna eget neque. Cras ipsum. Vestibulum pretium, lectus nec venenatis volutpat, purus lectus ultrices risus, a condimentum risus mi et quam. Pellentesque auctor fringilla neque. Duis eu massa ut lorem iaculis vestibulum. Maecenas facilisis elit sed justo. Quisque volutpat malesuada velit.",

  lines = Math.round(paragraph.length / 100);

let line = 0;

for (let i = 0; lines > i; i++) {
    document.body.innerHTML += paragraph.slice(line, line + 100) + '<br>';


小提琴链接:Here

我想的方式是,我们有N => 1000,我需要能够创建用空格分隔的单词行,其中行长> = 100

javascript不是我的强项,但我给予了很大的帮助,因此,解决此问题的任何帮助都将非常有用。

最佳答案

只要行不超过100个字符,就应该在空格上分开。
JSFiddle

var paragraph = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam nibh. Nunc varius facilisis eros. Sed erat. In in velit quis arcu ornare laoreet. Curabitur adipiscing luctus massa. Integer ut purus ac augue commodo commodo. Nunc nec mi eu justo tempor consectetuer. Etiam vitae nisl. In dignissim lacus ut ante. Cras elit lectus, bibendum a, adipiscing vitae, commodo et, dui. Ut tincidunt tortor. Donec nonummy, enim in lacinia pulvinar, velit tellus scelerisque augue, ac posuere libero urna eget neque. Cras ipsum. Vestibulum pretium, lectus nec venenatis volutpat, purus lectus ultrices risus, a condimentum risus mi et quam. Pellentesque auctor fringilla neque. Duis eu massa ut lorem iaculis vestibulum. Maecenas facilisis elit sed justo. Quisque volutpat malesuada velit.';

var result = '';
// While there's text left to parse
while(paragraph.length > 100){
    // Find the last space character in the first 100 characters
  var lastSpace = paragraph.substring(0,100).lastIndexOf(' ');

  // Add the chunk to the results
  result += paragraph.substring(0,lastSpace) + '<br/><br/>';

  // Remove the used chunk from the original body
  paragraph = paragraph.substring(lastSpace + 1);
}

// Add on the last trailing bit
result += paragraph;

document.body.innerHTML = result;

10-05 18:41