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)
 }

  打印结果

["小明", "小虎", "小张"]

 

 

posted on 2021-05-08 17:16  梁飞宇  阅读(974)  评论(0)    收藏  举报