Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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 如何删除在颤振/省道中具有相同贴图键的重复列表项?_Flutter_Dart - Fatal编程技术网

Flutter 如何删除在颤振/省道中具有相同贴图键的重复列表项?

Flutter 如何删除在颤振/省道中具有相同贴图键的重复列表项?,flutter,dart,Flutter,Dart,我有一个列表,当用户单击按钮时,我在其中添加地图值。用户将看到3个按钮,每个按钮都有相同的questionId(如3),但每个按钮的answerValue不同。每次用户单击一个按钮,带有问题id和答案值的地图就会添加到列表中。 如果用户单击了具有相同问题Id的所有三个按钮,则我的列表如下所示: {{questionId: 4, answerValue : 8}, {questionId: 4, answerValue : 7}, {questionId: 4, answerValue : 8}}

我有一个列表,当用户单击按钮时,我在其中添加地图值。用户将看到3个按钮,每个按钮都有相同的questionId(如3),但每个按钮的answerValue不同。每次用户单击一个按钮,带有问题id和答案值的地图就会添加到列表中。 如果用户单击了具有相同问题Id的所有三个按钮,则我的列表如下所示:

{{questionId: 4, answerValue : 8}, {questionId: 4, answerValue : 7}, {questionId: 4, answerValue : 8}}
所以我现在面临的问题是我有重复的项目,你可以从上面看到。列表并没有替换answerValue,而是随着用户单击按钮的次数增加越来越多的项。我想在这里实现的是,如果questionId相同,列表应该替换该项,而不是创建新的列表条目。我尝试使用set()和stackoverflow中的其他答案,但大多数答案只针对单个列表项,我无法实现我想要的结果。检查以下代码:

//This generates a map
    var map = new QuesNValues(questionId: widget.ques.questions[widget.index].question.questionOptions[i].questionId, questionOptionId: val).toJson(); 

// Output: {questionId: 4, questionOptionId: 9}
然后将此地图添加到列表中:

selectedQuesValuesList.add(map);

我曾尝试对列表中的项使用for语句,但我无法使其正常工作。我只需要列表来替换具有相同问题ID的值,而不是创建新项。

在将响应添加到列表之前,您可以清除它:

selectedQuesValuesList.removeWhere((m) => m.questionId == id);

我这里有个错误m、 questionId“”类“\u InternalLinkedHashMap”没有实例获取程序“questionId”。selectedQuesValuesList.removeWhere((m)=>m[“questionId”]==id);