带有 if 语句的 Netlogo foreach

Netlogo foreach with if statements

我有一个列表列表(里面有一个坐标列表),我想过滤内部列表的内容,如果它匹配一个结果,我想删除它。我无法遍历列表,然后遍历列表的第二个列表。

数据:

[[14.142135623730951 [-2 -16] "15"] [13.601470508735444 [-4 -17] "15"] [21.93171219946131 [-4 -17] "16"] [27.294688127912362 [-4 -17] "14"] [15.524174696260024 [-4 -17] "13"]]

我的尝试:

set coords [-4 -17]
    foreach[distanceQueue]
    [
    if(item ? item 1 distanceQueue = coords)[set distanceQueue remove-item ? distanceQueue]

    ]

其中 item ? 应该是 foreach 循环的当前迭代,第 1 项应该是该数组的第二个元素。

任何人都可以帮助我完成这项工作吗?

听起来你在要求 filter。例如,

to-report test
  let lst [
    [14.142135623730951 [-2 -16] "15"] 
    [13.601470508735444 [-4 -17] "15"] 
    [21.93171219946131 [-4 -17] "16"] 
    [27.294688127912362 [-4 -17] "14"] 
    [15.524174696260024 [-4 -17] "13"]
  ]
  let coords [-4 -17]
  report filter [[?] -> coords != item 1 ?] lst
end