如何找到与另一个数组的元素具有相同属性的数组的元素,并相应地进行更改?

时间:2018-11-27 02:10:53

标签: ios swift

我有类似以下代码的产品类:

class Product {
    var productID = ""
    var hasBeenAddedToWishList = false
}

然后我有两个产品阵列

let wishListedProduct = [productx,producty,productz] // from core data
let productList = [productx,producty,productz] // from server

enter image description here

如果用户先前已将产品添加到核心数据中的愿望清单,则我要给出填充的爱图标。

所以我想在上面的数组之间循环,所以如果wishListedProduct的第一个索引中的乘积与productList的第一个索引具有相同的ID,那么我需要更改hasBeenAddedToWishList的属性为true。该怎么做?

我尝试使用下面的代码,但是我找不到想要的东西

        for i in theWishListProducts {

                products.map {

                    if $0.productID == i.productID {
                        $0.hasBeenAddedToWishList = true
                    }

                }
            }

1 个答案:

答案 0 :(得分:2)

例如:

let wishListedProduct : [Product] = // whatever
let productList : [Product] = // whatever
let wishListedIds = wishListedProduct.map {$0.productID}
for product in productList {
    if wishListedIds.contains(product.productID) {
        product.hasBeenAddedToWishList = true
    }
}