dart - 如何在飞镖中添加两个列表的匹配元素?
问题描述
我在 Dart 中有两个长度相同的整数列表,并希望返回第一个列表,并将第二个列表的匹配元素添加到每个整数中。
目前我正在使用asMap
并forEach
使用它们的索引来更新元素:
List listA = [1,2,3];
List listB = [4,5,6];
listA.asMap().forEach((index, value) {
listA[index] = listA[index] + listB[index];
});
print(listA); \\ [5, 7, 9]
这有效,但感觉不优雅。
有没有更好、更省心的方法来做到这一点?
(性能对我来说不是问题,因为各个列表最多只有几个元素。)
解决方案
只需使用普通for
循环而不是扭曲您的代码来使用.forEach
;它简单、直接且易读:
List listA = [1,2,3];
List listB = [4,5,6];
assert(listA.length == listB.length);
for (var i = 0; i < listA.length; i += 1) {
listA[i] += listB[i];
}
print(listA); // [5, 7, 9]
推荐阅读
- python - numpy 距离矩阵,在没有 [i,j] 和 [j,i] 的情况下按值顺序迭代索引
- javascript - 如何知道哪个按钮重定向到页面
- python - 是否有使用 python 控制台在 Blender 中安装 tensorflow 的正确方法?
- java - 从 dynamoDB 表中删除数据时出错
- java - java.time 比较不一致
- python-3.x - 如何通过 PyTorch 计算图输出损失梯度反向传播路径
- r - 在 R 中创建数据框导入多张工作表
- scala - 运行 TPCDS 基准数据集时出现 Spark 错误 - 找不到 dsdgen
- python - 为什么返回 [],而不是 ["stuff"]?
- reactjs - 边距底部作为键盘高度