首页 > 解决方案 > 在 Swift 中搜索和替换二维数组中的字符串

问题描述

快速自学,在这里完全是新手,但我对一个项目还很遥远,我只知道必须有一种更简单的方法来实现某些目标。

我有一个二维数组:

var shopArray = [
["theme":"default","price":0,"owned":true,"active":true,"image":UIImage(named: "defaultImage")!,"title":"BUY NOW"],
["theme":"red","price":1000,"owned":false,"active":false,"image":UIImage(named: "redImage")!,"title":"BUY NOW"],
["theme":"blue","price":2000,"owned":false,"active":false,"image":UIImage(named: "blueImage")!,"title":"BUY NOW"],
["theme":"pool","price":3000,"owned":true,"active":false,"image":UIImage(named: "blueImage")!,"title":"BUY NOW"],
["theme":"line","price":4000,"owned":false,"active":false,"image":UIImage(named: "lineImage")!,"title":"BUY NOW"],
["theme":"neon","price":5000,"owned":false,"active":false,"image":UIImage(named: "lineImage")!,"title":"BUY NOW"]]

我只是想创建一个运行并搜索所有“拥有”键并使它们全部为“false”的函数。

如何在 Arrays / 2D Arrays 中搜索和替换。更具体地说,func 应该是什么样的?

谢谢!

标签: arraysswiftxcodesearchreplace

解决方案


你没有二维数组,你有一个字典数组。

您可以owned通过迭代数组的索引并更新值来设置键的所有值:

shopArray.indices.forEach { shopArray[$0]["owned"] = false }

这是实现它的功能性方式。您也可以使用for循环执行相同的操作:

for idx in shopArray.indices {
    shopArray[idx]["owned"] = false
}

推荐阅读