【问题标题】:MVC, AngularJS, Generate a random setup of added notesMVC,AngularJS,生成添加注释的随机设置
【发布时间】:2015-01-30 17:24:24
【问题描述】:

我正在尝试创建一个解决方案,我可以在其中将名称输入到 textarea 中,然后生成具有随机顺序但在最新添加的注释中的注释设置(其中每个注释有两个输入字段)。 我现在尝试了很多事情都没有成功。我真的希望你们中的一些人可以帮助我,或者给我一个类似的例子。

例如,如果我在 textarea 中输入四个名称,然后按“生成注释”,它应该生成三个注释,其中第一个注释应该在两个字段中显示为空,名称将被放入最后两个注释以随机顺序。像这样:

文本区域;

name1
name2
name3
name4

输出将是这样的:

  1. [空,空]
  2. [name2,name3] [name1,name4]

如果我输入六个名字:

name1
name2
name3
name4
name5
name6

输出会是这样的:

  1. [空,空]
  2. [空,空] [空,空]
  3. [name2,name5] [name3,name1] [name4,name6] [empty,empty]

以下小提琴添加了一个不起作用的文本区域。它确实有一个“生成笔记”按钮,现在可以手动添加笔记。每次点击一个会话。它不会产生任何东西。

请看一下这个小提琴:

jsfiddle.net/VJ94U/1140/

非常感谢您能给我的任何帮助或指导! 提前谢谢你。

【问题讨论】:

  • 您的具体问题是什么:如果您正在寻找与角度无关的通用算法,但是如果您知道如何解决问题但不知道如何实现它,请告诉我们您不知道什么没办法。随机排序一个数组?计算要插入的正确数量?..
  • 嗨 Floribon - 很好的问题!我不知道如何计算需要插入的项目。

标签: asp.net-mvc angularjs


【解决方案1】:

好的,所以您正在寻找一种算法来解决这种情况。这是一个工作示例,现在您需要将其适应 Angular 事物,如果您对此有任何问题,请告诉我们。

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  ][  -  -  ]

编辑:您可以通过这种方式从 textarea 中获取名称数组:

var names = $(yourTextArea).val().split('\n');
var numberNames = names.length;

【讨论】:

  • 非常感谢您抽出时间 Floribon。它绝对解决了我正确算法的问题!再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
  • 1970-01-01
  • 2011-12-21
  • 2012-11-11
  • 2018-02-18
相关资源
最近更新 更多