Перебор массива


#1

доброго времени суток!
моя задача найти элемент массива зная только его значение, чувствую что надо это делать используя циклы, но большенство попыток было неудачно.

import Foundation
import Cocoa

class car
{
    var year_of_issue : String = ""
    var manufacturer : String = ""
    var name: String = ""
    var type: String = ""
    func discription() -> String {"автомобиль \(manufacturer + " " + name) год выпуска - \(year_of_issue) тип кузова \(type)"}
}

let car_0 = car()
car_0.year_of_issue = "0000"
car_0.manufacturer = "hyundai"
car_0.name = "solaris"
car_0.type = "sedan"

let car_1 = car()
car_1.year_of_issue = "2016"
car_1.manufacturer = "land rover"
car_1.name = "freelander"
car_1.type = "suv"

let car_2 = car()
car_2.year_of_issue = "2017"
car_2.manufacturer = "smart"
car_2.name = "fortwo"
car_2.type = "coupe"

var cars = [car]()
cars.append(car_0)
cars.append(car_1)
cars.append(car_2)





print("хотите удалить машину?")
let answer_delite_0 = readLine()
if answer_delite_0 == "да"{
print ("введите производителя машины и модель")
let answer_delete_1 = readLine()
for item in cars {
    if item.manufacturer + " " + item.name == answer_delete_1  {   
        print ("вы точно хотите удалить эту машину?")
        print (item.discription())}
        let answer_delete_2 = readLine()
        if answer_delete_2 == "да" {
        cars.remove(at: 1)
        print (cars)
    }
}
}

вот код который у меня есть, мне необходимо удалить определённый элемент массива, но я не могу получить его индекс.
заранее спасибо!


#2

Как то странно идти на стажировку не прочитав даже учебника :see_no_evil:

Если его прочитать, то можно додуматься до чего то такого:

struct Car { let name: String }

var cars = [Car(name: "A"), Car(name: "B"), Car(name: "C"), Car(name: "B")]

for (index, car) in cars.enumerated() where car.name == "B" {
    cars.remove(at: index)
    break
}

Если пойти ещё дальше, и почитать документацию к стандартной библиотеке, до такого:

if let index = cars.firstIndex(where: { $0.name == "B" }) {
    cars.remove(at: index)
}

#3

Благодарю, читал конечно, более чем полгода не занимался, очень многое позабылось…
сделал в итоге следующим образом:

print (cars.count)
print("хотите удалить машину?")
let answer_delite_0 = readLine()
if answer_delite_0 == "да"{
    print ("введите производителя машины и модель")
    let answer_delete_1 = readLine()
    for item in cars {
if item.manufacturer + " " + item.name == answer_delete_1  {
    print ("вы точно хотите удалить эту машину?")
    print (item.discription())}
    let answer_delete_2 = readLine()
    if answer_delete_2 == "да" {
    for (index, car) in cars.enumerated() where car === item {cars.remove(at: index)}
        print ("список автомобилей:")
    for index in cars{print(index.discription())}}
    }
}