我在根据用户输入拆分数组时遇到了一些小问题。我有一个文本区域,用户将输入一篇文章和一个输入框,一个人可以输入一个数字,这将是一个分裂的基础。假设用户输入"3",整篇文章将被分成3句每一段。
到目前为止我有这个html,
<textarea id="essay"></textarea>
<input type="text" onkeypress="return show_paragraph(event)" id="input" />
<div id="questionDiv"></div>还有一个能完成所有任务的函数。但切片只适用于第一段,意思是,如果我输入一篇由8个句子组成的文章,我想把它切成三个句子,例如,我只得到两段,第一段有3句,第二段有5句,而我应该有3段,3-3-2句。
function show_paragraph(e){
var numSentences = $("#input").val();
var essay= $("#essay").val();
if (e.keyCode == 13 || e.which == 13) {
var sentence_list = essay.split(". "); //array of sentences
var sentence_results = "";
var i,j,paragraph;
var chunk = numSentences;
for (i=0,j=sentence_list.length; i<j; i+=chunk) {
paragraph = sentence_list.slice(i,i+chunk);
sentence_results += '<div id="sentenceDiv" >';
sentence_results += '<h4 id="paragraph'+i+'">'+paragraph+'</h4>';
sentence_results += '</div>';
}
$("#questionDiv").html(sentence_results);
return false;
}
}我似乎回不来这段时间()每句话都要回来。
谢谢你的帮助..。=)
发布于 2014-01-06 08:05:20
非常有趣。您的逻辑是正确的,您只需修复这两行:
而不是
var chunk = numSentences;做:
var chunk = parseInt(numSentences, 10);如果不是,在for中执行“+”时,它将连接而不是添加。
而不是:
paragraph = sentence_list.slice(i,i+chunk);做:
paragraph = sentence_list.slice(i,i+chunk).join(". ");所以你可以把经期拿回来。
经过测试,它起作用了:)。
干杯,来自玻利维亚的拉巴斯
https://stackoverflow.com/questions/20945276
复制相似问题