为什么清空列表会清空第一个列表?



我编写了这个小示例,以便您理解我的问题。我做了一个列表的副本,我从副本中删除了一些值,但它们也从原始列表中删除了。为什么会发生这种情况?

错误是:Uncaught error: Concurrent modification during iteration: Instance of 'JSArray'.

void main() 
{
List<String> list1 = ['jose', 'maria', 'eduardo','emiliano','paula'];
List<String> list2 = [];


list2 = list1;
for(var name in list1)
{
String nameAux = name;
print(nameAux);
list2.removeLast();
}
}

我需要原始列表不像复制

那样删除元素

感谢

这里有几点:

首先,下面的代码只将引用复制到列表,而不复制列表本身

list2 = list1;

,你可以使用

List<String> list2 = List.from(list1);

更多细节在这篇文章

然后,你会有另一个错误,你不能从列表中删除项目,而迭代列表

for(var name in list1)
{
list2.removeLast();
}

如果你真的需要这样做,那就用这个来代替,但是当你删除一个项目时要小心,下一个项目会移动:

for(var i = 0; i < this.gamesList.length; i++)

相关内容

  • 没有找到相关文章

最新更新