我正在尝试创建一个解决方案,我可以在其中将名称输入文本区域,然后以随机顺序生成笔记设置(每个音符有两个输入字段),但在最新添加的笔记中。我现在尝试了很多事情都没有成功。我真的希望你们中的一些人可以帮助我,或者给我指出一个模拟的例子。
例如,如果我在文本区域中输入四个名称,然后按"生成注释",它应该生成三个注释,其中第一个注释应在两个字段中显示为空,并且名称将按随机顺序放入最后两个注释。喜欢这个:
文本区域;
name1
name2
name3
name4
输出将如下所示:
- [空,空]
- [名称 2,名称 3] [名称 1,名称 4]
如果我输入六个名字:
name1
name2
name3
name4
name5
name6
输出将如下所示:
- [空,空]
- [空,空] [空,空]
- [名称 2,名称 5
] [名称 3,名称 1] [名称 4,名称 6] [空,空]
以下小提琴添加了不起作用的文本区域。它确实有一个"生成笔记"按钮,现在可以手动添加笔记。每次点击一个会话。它不会产生任何东西。
请看一下这个小提琴:
jsfiddle.net/VJ94U/1140/
非常感谢您能给我的任何帮助或指示!提前谢谢你。
所以你正在寻找一种解决这种情况的算法。这是一个工作示例,现在您需要将其适应 Angular thingies,如果您有问题,请告诉我们。
function graph(nbNames) {
var nbLines = 0;
while (Math.pow(2, nbLines) < nbNames) { nbLines ++; }
for (var i=0; i<nbLines; i++) {
var t = '';
for (var j=0; j<Math.pow(2, i); j++) {
t += '[ ';
for (var k=0; k<2; k++) {
if (i === nbLines-1 && (j*2+k) < nbNames) { t += ' x '; }
else { t += ' - '; }
}
t += " ]";
}
console.log(t);
}
}
和输出:
graph(4) >>
[ - - ]
[ x x ][ x x ]
graph(6) >>
[ - - ]
[ - - ][ - - ]
[ x x ][ x x ][ x x ][ - - ]
编辑:您可以通过以下方式从文本区域获取名称数组:
var names = $(yourTextArea).val().split('n');
var numberNames = names.length;