如何确定地图列表是否包含密钥的特定值?

时间:2019-08-18 11:19:50

标签: flutter dart

我无法理解如何通过键检查地图列表是否包含值。下面是我拥有的数据结构。

[
  {
    id: 1,
    bookTxt: Hereissomebooktext.,
    bookAuth: Charles
  },
  {
    id: 3,
    bookTxt: Hereissomemorebooktext.,
    bookAuth: Roger
  },
  {
    id: 6,
    bookTxt: Hereissomeevenmorebooktext.,
    bookAuth: Matt
  }
]

我正在尝试编写简单的函数或函数,以查看此地图列表是否包含某个“ id”。我知道List具有Contains方法,但就我而言,我必须在Maps列表中找到一个值。

例如,如果我想查看上面的地图列表是否包含id的{​​{1}},我将如何访问它?

2 个答案:

答案 0 :(得分:2)

直接检查方式

if (list[0].containsKey("id")) {
  if (list[0]["id"] == 3) {
    // your list of map contains key "id" which has value 3
  }
}

对于间接方式,您需要像这样循环遍历:

for (var map in list) {
  if (map.containsKey("id")) {
    if (map["id"] == 3) {
      // your list of map contains key "id" which has value 3
    }
  }
}

答案 1 :(得分:1)

也许要遍历列表中的地图,然后问每张地图以获取所需的密钥,并检查所需内容。