如何从Dart中的List中获取随机元素?

时间:2013-07-04 18:58:58

标签: dart

如何从Dart中的集合中检索随机元素?

var list = ['a','b','c','d','e'];

5 个答案:

答案 0 :(得分:23)

import "dart:math";

var list = ['a','b','c','d','e'];

// generates a new Random object
final _random = new Random();

// generate a random index based on the list length
// and use it to retrieve the element
var element = list[_random.nextInt(list.length)];

答案 1 :(得分:6)

    $('#dynamicformdata').each(function() {

          console.log(this.type);
     })

  <div id="dynamicformdata">
    <video width="320" height="240" >
        <source src="movie.mp4" type="video/mp4">
        <source src="movie.ogg" type="video/ogg">

   </video>
 </div>

答案 2 :(得分:4)

这也有效:

import {Component} from '@angular/core';
import {Router} from '@angular/router';
@Component({
  selector: 'app-root',
  templateUrl: './app.home.html',
})

export class HomeComponant {
title = 'Home';


constructor(

    private router: Router,

) {}

onSubmit() {
  this.router.navigate(['/doctor'],{queryParams:{test:1}});
}

}

或者如果您不想弄乱列表,请创建一个副本:

var list = ['a','b','c','d','e'];

//this actually changes the order of all of the elements in the list 
//randomly, then returns the first element of the new list
var randomItem = (list..shuffle()).first;

答案 3 :(得分:1)

您可以使用dart_random_choice软件包来帮助您。

{'label': 'xyz.com',
 'children': [{'parent': 'xyz.com',
               'label': 'abc.com',
               'depth': 0,
               'children': [{'parent': 'abc.com',
                             'label': 'user-3',
                             'depth': 1}]},
              {'parent': 'xyz.com', 'label': 'user-1', 'depth': 0}]}

答案 4 :(得分:0)

我刚刚为 List 创建了一个扩展方法。

import 'dart:math';

extension RandomListItem<T> on List<T> {
  T randomItem() {
    return this[Random().nextInt(length)];
  }
}

我们可以这样使用它。

List.randomItem()

示例:

Scaffold(
      body: SafeArea(
        child: isItLogin
            ? Lottie.asset('assets/lottie/53888-login-icon.json')
            : Lottie.asset(LottieAssets.loadingAssets.randomItem()),
      ),
    );