Netlogo foreach with if语句

时间:2017-05-25 06:52:16

标签: netlogo

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

DATA:

[[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循环的当前迭代,而item 1应该是该数组的第二个元素。

有人可以协助我完成这项工作吗?

1 个答案:

答案 0 :(得分:2)

听起来你要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