关于sort:List.shuffle()在Dart中?

List.shuffle() in Dart?

我正在网上寻找所有地方(飞镖网站,stackoverflow,论坛等),但找不到答案。

所以这是我的问题:我需要编写一个函数,该函数打印一个随机的列表,以女巫作为参数。 :在飞镖中也是如此。

我尝试使用地图,集合,列表...我尝试使用assert方法,使用sort方法,在Dart librabry上使用Math来研究随机方法...什么也做不了。

有人可以帮我弄这个吗?

这是一些草稿:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var element03 = query('#exercice03');
  var uneliste03 = {'01':'Jean', '02':'Maximilien', '03':'Brigitte', '04':'Sonia', '05':'Jean-Pierre', '06':'Sandra'};
  var alluneliste03 = new Map.from(uneliste03);
  assert(uneliste03 != alluneliste03);
  print(alluneliste03);

  var ingredients = new Set();
  ingredients.addAll(['Jean', 'Maximilien', 'Brigitte', 'Sonia', 'Jean-Pierre', 'Sandra']);
  var alluneliste03 = new Map.from(ingredients);
  assert(ingredients != alluneliste03);
  //assert(ingredients.length == 4);

  print(ingredients);

  var fruits = <String>['bananas', 'apples', 'oranges'];
  fruits.sort();
  print(fruits);


List类中有一个shuffle方法。 您可以不带参数调用它,也可以提供一个随机数生成器实例:

1
2
3
4
5
var list = ['a', 'b', 'c', 'd'];

list.shuffle();

print('$list');


这是一个基本的shuffle函数。 请注意,由此产生的混洗在密码学上不强。 它使用Dart的Random类,该类生成不适合密码使用的伪随机数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import 'dart:math';

List shuffle(List items) {
  var random = new Random();

  // Go through all elements.
  for (var i = items.length - 1; i > 0; i--) {

    // Pick a pseudorandom number according to the list length
    var n = random.nextInt(i + 1);

    var temp = items[i];
    items[i] = items[n];
    items[n] = temp;
  }

  return items;
}

main() {
  var items = ['foo', 'bar', 'baz', 'qux'];

  print(shuffle(items));
}