【问题标题】:In jquery, how is it possible to randomize an Array with conditions?在 jquery 中,如何根据条件随机化一个数组?
【发布时间】:2016-05-10 02:17:45
【问题描述】:

我像这样随机化我的数组的顺序:

var arr = [ "A","B","C","D","E","F" ]
arr.sort(function() { return 0.5 - Math.random() });

// produces for example : [ C, E, A, F, D, B ]

但我希望“F”在第四位(例如)。

解决办法是什么?

【问题讨论】:

  • 随机化后,检查并更改您不喜欢的任何条件。
  • F应该在什么位置?

标签: jquery arrays random conditional-statements


【解决方案1】:

可以在调用 .sort() 之前使用 .pop() 从数组中删除 "F" ,使用 .splice() 在除索引 3arr 之外的任何位置重新插入 "F" 使用包含arr 的所有索引的第二个数组,不包括3

var arr = [ "A","B","C","D","E","F" ];
var not = [0,1,2,4,5];
var f = arr.pop();
arr.sort(function() { return 0.5 - Math.random() });
var p = not[Math.floor(Math.random() * not.length)];
arr.splice(p, 0, f);
document.body.innerHTML = arr.join(" ")

【讨论】:

  • 不错的解决方案!我有一个小问题:在“拼接”中,“p+1”强制索引 [4]。我想要任何索引,除了 [3]...[0]、[1]、[2]、[4] 或 [5],
  • 不错的解决方案!我有一个小问题:在“拼接”中,“p+1”强制索引 [4]。我想要除 [3] 之外的任何索引... // [0]、[1]、[2]、[4] 或 [5] 也很好。
猜你喜欢
  • 2016-12-20
  • 2020-09-05
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多