Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript数组中自动生成名称_Javascript_Jquery - Fatal编程技术网

在javascript数组中自动生成名称

在javascript数组中自动生成名称,javascript,jquery,Javascript,Jquery,最近,我一直在为一段javascript代码苦苦挣扎。代码如下所示: var bigData = { "teams" : [ ["Team 1", "Team 2" ], ["Team 3", "Team 4" ], ["Team 5", "Team 6" ], ["Team 7", "Team 8" ], ["Team 9", "Team 10" ], ["Team 11", "Team 12" ], ["Team 13", "Team 14" ],

最近,我一直在为一段javascript代码苦苦挣扎。代码如下所示:

var bigData = {
 "teams" : [
  ["Team 1",  "Team 2" ],
  ["Team 3",  "Team 4" ],
  ["Team 5",  "Team 6" ],
  ["Team 7",  "Team 8" ],
  ["Team 9",  "Team 10" ],
  ["Team 11",  "Team 12" ],
  ["Team 13",  "Team 14" ],
  ["Team 15",  "Team 16" ],
 ],
 results : [[ /* WINNER BRACKET */
  [[1,0], [1,0], [0,3], [2,3], [1,5], [5,3], [7,2], [1,2]],
  [[1,2], [3,4], [5,6], [7,8]],
  [[9,1], [8,2]],
  [[1,3]]
 ]
}
正如您可能已经猜到的,它是一个用于锦标赛的jquery插件。问题是,我不想手动编写团队,我希望他们自动编写我已经这样做了,代码不起作用,因为while循环在变量内部(到目前为止我知道):

var计数=1;
变量bigData={
“团队”:[
而(计数
var bigData={
“团队”:[],
结果:[[/*优胜者括号*/
[[1,0], [1,0], [0,3], [2,3], [1,5], [5,3], [7,2], [1,2]],
[[1,2], [3,4], [5,6], [7,8]],
[[9,1], [8,2]],
[[1,3]]
]] };
对于(var i=1;i
var bigData={
“团队”:[],
结果:[[/*优胜者括号*/
[[1,0], [1,0], [0,3], [2,3], [1,5], [5,3], [7,2], [1,2]],
[[1,2], [3,4], [5,6], [7,8]],
[[9,1], [8,2]],
[[1,3]]
]] };
对于(var i=1;i尝试以下方法:

var count = 1;
var data = [];

while (count <= 16) {
  data.push(["Team " + (count++).toString(),  "Team " + count.toString() ]);
  count++;
 }

var bigData = {
"teams" : data
}
var计数=1;
var数据=[];
同时(计数尝试以下方法:

var count = 1;
var data = [];

while (count <= 16) {
  data.push(["Team " + (count++).toString(),  "Team " + count.toString() ]);
  count++;
 }

var bigData = {
"teams" : data
}
var计数=1;
var数据=[];
而
代码不起作用,因为while循环在变量内部

是的,您不能将控制流语句放在对象文字的中间。相反,您需要从空数组开始,然后通过赋值(或)用值填充该数组:

var团队=[];
对于(var i=1;i
代码不起作用,因为while循环在变量内部

是的,您不能将控制流语句放在对象文字的中间。相反,您需要从空数组开始,然后通过赋值(或)用值填充该数组:

var团队=[];

对于(var i=1;i这里提供的其他答案使用一组数字(8,16,随便什么)构建一个团队列表

你可以厚着脸皮,在实际结果中生成团队以外的团队列表,这将证明你的脚本不会因联盟规模的扩大而受到影响。代码的大部分生命周期都花在维护上,如果你能多花几分钟让你的东西更具数据驱动性,你将在漫长的时间里节省大量时间奥尔

因为您使用的是jquery,所以我将在这里使用该库中的函数:

var bigData = {
  results : [
    [ /* WINNER BRACKET */
      [[1,0], [1,0], [0,3], [2,3], [1,5], [5,3], [7,2], [1,2]],
      [[1,2], [3,4], [5,6], [7,8]],
      [[9,1], [8,2]],
      [[1,3]]
    ]
  ]
};

function flatten(n) {
  return $.map(n, function(x){ 
    return $.isArray(x) ? flatten(x) : x;
  });
}

bigData.teams = $.map(
  $.unique(flatten(bigData.results)).sort(), 
  function(num) { return "Team "+num; }
);
控制台输出:

> JSON.stringify(bigData)
  "{
    "results":[[[[1,0],[1,0],[0,3],[2,3],[1,5],[5,3],[7,2],[1,2]],[[1,2],[3,4],[5,6],[7,8]],[[9,1],[8,2]],[[1,3]]]],
    "teams":["Team 0","Team 1","Team 2","Team 2","Team 2","Team 3","Team 4","Team 5","Team 6","Team 7","Team 8","Team 8","Team 9"]
   }"

这里提供的其他答案使用一组数字(8、16,随便什么)构建一个团队列表

你可以厚着脸皮,在实际结果中生成团队以外的团队列表,这将证明你的脚本不会因联盟规模的扩大而受到影响。代码的大部分生命周期都花在维护上,如果你能多花几分钟让你的东西更具数据驱动性,你将在漫长的时间里节省大量时间奥尔

因为您使用的是jquery,所以我将在这里使用该库中的函数:

var bigData = {
  results : [
    [ /* WINNER BRACKET */
      [[1,0], [1,0], [0,3], [2,3], [1,5], [5,3], [7,2], [1,2]],
      [[1,2], [3,4], [5,6], [7,8]],
      [[9,1], [8,2]],
      [[1,3]]
    ]
  ]
};

function flatten(n) {
  return $.map(n, function(x){ 
    return $.isArray(x) ? flatten(x) : x;
  });
}

bigData.teams = $.map(
  $.unique(flatten(bigData.results)).sort(), 
  function(num) { return "Team "+num; }
);
控制台输出:

> JSON.stringify(bigData)
  "{
    "results":[[[[1,0],[1,0],[0,3],[2,3],[1,5],[5,3],[7,2],[1,2]],[[1,2],[3,4],[5,6],[7,8]],[[9,1],[8,2]],[[1,3]]]],
    "teams":["Team 0","Team 1","Team 2","Team 2","Team 2","Team 3","Team 4","Team 5","Team 6","Team 7","Team 8","Team 8","Team 9"]
   }"

它只会增加8支队伍,而不是16支:)而且,使用toString()也不是必需的。它只会增加8支队伍,而不是16支:)而且,使用toString()也不是必需的。你们真的是最好的,我不能说你们为我做了多少!-太多了,祝你们所有人,有一个美好的一天:)好的,先生!-现在我有另一个问题要问你..我有没有办法把php代码传给团队成员?@Emil我肯定有办法-如果你发另一个问题,我肯定你会得到一些答案。好的,我会试试。谢谢你的快速回答。你们真的是最好的,我不能说你们为我做了多少!-太多了各位,祝你们今天愉快:)好的,先生!-现在我有另一个问题要问你..我可以把php代码传递给团队名称吗?@Emil我相信有办法-如果你发布另一个问题,我相信你会得到一些答案。好的,我会试试。谢谢你的快速回复。谢谢你的申请。我理解你的意思,但不是你键入的内容:p-我是否应该复制代码,它将显示(因为我不能)-我不知道如何处理它:)第一个块应该只是您列出的代码的替换,就像这里提供的其他答案一样。第二个块是将其放入javascript控制台的示例输出。嘿,好了。感谢您的应用。我理解您的意思,但不是您键入的内容:p-我是否应该复制代码,它将显示出来(因为我不能)-我不知道该怎么办:)第一个块应该是您列出的代码的替代品,就像这里提供的其他答案一样。第二个块是将其放入javascript控制台的示例输出。