首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在javascript中洗牌文本行?

如何在javascript中洗牌文本行?
EN

Stack Overflow用户
提问于 2022-06-07 12:38:39
回答 1查看 217关注 0票数 0

我试着把一首诗的诗句混在一起,这样每次页面重新加载时,每一行的顺序都是不同的。我使用了我在txtfiddle上找到的js代码,但我似乎无法使它在我的页面上工作。这就是链接:https://txtfiddle.com/~aolam6a/shuffle-lines,我以为我只需要调用一个变量“输入”才能让它正常工作,但事实并非如此。有什么帮助吗?谢谢!

代码语言:javascript
运行
复制
var input = document.getElementById("text").innerHTML;
// Split input text into an array of lines

const lines = input.split(/\r?\n/);

// Fisher–Yates shuffle to randomize the array
for (let i = lines.length - 1; i > 0; i--) {
  const j = Math.floor(Math.random() * (i + 1));
  [lines[i], lines[j]] = [lines[j], lines[i]];
}

// Join line array back into a string
return lines.join("\n");
代码语言:javascript
运行
复制
<div id="text">

  Quand le ciel bas et lourd pèse comme un couvercle<br> Sur l'esprit gémissant en proie aux longs ennuis,<br> Et que de l'horizon embrassant tout le cercle<br> Il nous verse un jour noir plus triste que les nuits ;<br> Quand la terre est changée en un
  cachot humide,<br> Où l'Espérance, comme une chauve-souris,<br> S'en va battant les murs de son aile timide<br> Et se cognant la tête à des plafonds pourris ;<br> Quand la pluie étalant ses immenses traînées<br> D'une vaste prison imite les barreaux,<br>  Et qu'un peuple muet d'infâmes araignées<br> Vient tendre ses filets au fond de nos cerveaux,<br> Des cloches tout à coup sautent avec furie<br> Et lancent vers le ciel un affreux hurlement,<br> Ainsi que des esprits errants et sans patrie<br> Qui se
  mettent à geindre opiniâtrement.<br> - Et de longs corbillards, sans tambours ni musique,<br> Défilent lentement dans mon âme ; l'Espoir,<br> Vaincu, pleure, et l'Angoisse atroce, despotique,<br> Sur mon crâne incliné plante son drapeau noir.<br>
</div>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-07 12:43:12

TxtFiddle使用return语句在浏览器中显示输出。

但是,当使用普通Javascript时,函数范围外的return是无效的。

应该将lines.join("\n")设置为<div>的内容。

代码语言:javascript
运行
复制
element.innerHTML = lines.join("\n");

演示:

代码语言:javascript
运行
复制
var element = document.getElementById("text");
var input = element.innerHTML;
// Split input text into an array of lines

const lines = input.split(/\r?\n/);

// Fisher–Yates shuffle to randomize the array
for (let i = lines.length - 1; i > 0; i--) {
  const j = Math.floor(Math.random() * (i + 1));
  [lines[i], lines[j]] = [lines[j], lines[i]];
}

// Join line array back into a string
element.innerHTML = lines.join("\n");
代码语言:javascript
运行
复制
<div id="text">

  Quand le ciel bas et lourd pèse comme un couvercle<br> Sur l'esprit gémissant en proie aux longs ennuis,<br> Et que de l'horizon embrassant tout le cercle<br> Il nous verse un jour noir plus triste que les nuits ;<br> Quand la terre est changée en un
  cachot humide,<br> Où l'Espérance, comme une chauve-souris,<br> S'en va battant les murs de son aile timide<br> Et se cognant la tête à des plafonds pourris ;<br> Quand la pluie étalant ses immenses traînées<br> D'une vaste prison imite les barreaux,<br>  Et qu'un peuple muet d'infâmes araignées<br> Vient tendre ses filets au fond de nos cerveaux,<br> Des cloches tout à coup sautent avec furie<br> Et lancent vers le ciel un affreux hurlement,<br> Ainsi que des esprits errants et sans patrie<br> Qui se
  mettent à geindre opiniâtrement.<br> - Et de longs corbillards, sans tambours ni musique,<br> Défilent lentement dans mon âme ; l'Espoir,<br> Vaincu, pleure, et l'Angoisse atroce, despotique,<br> Sur mon crâne incliné plante son drapeau noir.<br>
</div>

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72531390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档