Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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
Flutter 再次在dart中遍历阵列_Flutter_Dart_Google Cloud Firestore - Fatal编程技术网

Flutter 再次在dart中遍历阵列

Flutter 再次在dart中遍历阵列,flutter,dart,google-cloud-firestore,Flutter,Dart,Google Cloud Firestore,我有一个由5个元素组成的数组:- var a=[1,2,3,4,5]; 和一个变量,该变量将具有来自firebase的某个整数值。所以,我想要的是,当这个值小于数组的长度时,它应该在该索引处打印数组的值,即 int valueFromFireBase=3; print(a[valueFromFireBase]); //Result should be 4 当它大于数组的长度时,它应该再次遍历数组,即。 如果值为6,则应打印1 我尝试过的代码是:- int val=0;

我有一个由5个元素组成的数组:-

var a=[1,2,3,4,5];
和一个变量,该变量将具有来自firebase的某个整数值。所以,我想要的是,当这个值小于数组的长度时,它应该在该索引处打印数组的值,即

    int valueFromFireBase=3;
    print(a[valueFromFireBase]);
    //Result should be 4
当它大于数组的长度时,它应该再次遍历数组,即。 如果值为6,则应打印1

我尝试过的代码是:-

int val=0;
  var a=[1,2,3,4,5,6];
  int valueFromFireBase=7;
  if(valueFromFireBase>=a.length)
  {
    int divident=valueFromFireBase%a.length;
    valueFromFireBase-=divident;
    val=a[valueFromFireBase];
  }
  else
  {
    val=a[valueFromFireBase];
  }
  print(val);

但当valueFromFireBase等于数组长度时,此代码不起作用。

您需要使用模运算符:

val=a[valueFromFireBase%a.length];
请注意,数组索引是基于0的,因此如果
valueFromFireBase==7
您将获得第8个元素

void main(){
最终a=[1,2,3,4,5,6];
Firebase的最终值=7;
int val=a[valueFromFireBase%a.length];
打印(val);
}


模文档:

您需要使用模运算符:

val=a[valueFromFireBase%a.length];
请注意,数组索引是基于0的,因此如果
valueFromFireBase==7
您将获得第8个元素

void main(){
最终a=[1,2,3,4,5,6];
Firebase的最终值=7;
int val=a[valueFromFireBase%a.length];
打印(val);
}


模文档:

您可以这样做:

int val=0;
  var a=[1,2,3,4,5,6];
  int valueFromFireBase=7;
  if(valueFromFireBase>=a.length)
  {
    val=a[valueFromFireBase % a.length];
  }
  else
  {
    val=a[valueFromFireBase];
  }
  print(val);

您可以这样做:

int val=0;
  var a=[1,2,3,4,5,6];
  int valueFromFireBase=7;
  if(valueFromFireBase>=a.length)
  {
    val=a[valueFromFireBase % a.length];
  }
  else
  {
    val=a[valueFromFireBase];
  }
  print(val);

是否确定firebase值是否为
6
是否希望代码返回
1
?在您的示例中,6将是
2
,因为
0
也是一个有效的索引值。您确定firebase值是否为
6
是否希望代码返回
1
?在您的示例中,6将是
2
,因为
0
也是一个有效的索引值。