Swift小知识点之 Swift中removeObject方法
一,概述
使用OC数组时可以通过removeObject来到达删除某一个元素的目的,但是用swift应该都知道 删除某一个元素的时候提供的是 array.remove(at: <#T##Int#>)并没有提供按照 指定元素删除的方法。
- OC
NSMutableArray *tempArray = @[@"小花",@"小明",@"小虎",@"小张"].mutableCopy; NSLog(@"%@",tempArray); [tempArray removeObject:@"小花"]; NSLog(@"%@",tempArray);
-
Swift
///swift数组只有一个 var tempArray = ["小花","小明","小虎","小张"] tempArray.remove(at: i);
二,解决方案
如果我要实现类似OC数组的removeObject方法咋办呢?不是没有,是Array 支持更强到的值过滤能力。Array.filter filter方法支持 正则语句检索,功能很强大
let tempArray = ["小花","小明","小虎","小张"] let newTempArray = tempArray.filter { $0 != "小明"} print(newTempArray)
打印结果
["小花", "小虎", "小张"]
filter方法是生成一个新的对象,数组本身没有变化封装一个简单的remove方法即可 对自身重指向
如果知道数组中没有没有重复的元素,也可以遍历数组找到对应的index 然后删除
var tempArray = ["小花","小明","小虎","小张"] if let index = tempArray.firstIndex(of: "小花") { tempArray.remove(at: index) print(tempArray); } else { print(tempArray) }
打印结果
["小明", "小虎", "小张"]