2017-05-25 19 views
0

Ich habe eine Liste von Listen (mit einer Coords-Liste innerhalb) und möchte durch den Inhalt der inneren Listen filtern und wenn es ein Ergebnis entspricht, möchte ich es löschen. Ich habe Probleme beim Durchlaufen der Liste und dann die zweite Liste der Liste.Netlogo foreach mit if-Anweisungen

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"]] 

Mein Versuch:

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

    ] 

Wo item ? sollte die aktuelle Iteration der Schleife und foreach Element sein 1 sollte das zweite Element dieses Array sein.

Kann mir jemand dabei helfen?

Antwort

2

Es klingt, als ob Sie nach filter fragen. Z. B.

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