array删除元素 swift

2019-01-15 10:58:00 jukai666 阅读数 425

Swift中Array的删除对象

在Swift中数组Array没有removeObject的方法

1、找到下标

 let model_index = selectedArray.index(where: { (arr) -> Bool in

   ((selectedBeaconArray.index(of: vbModel)) != nil)

 })

2、删除下标对应的元素

if model_index != nil{

  selectedBeaconArray.remove(at: model_index ?? 0)

}

2016-12-13 13:50:24 sinat_20037505 阅读数 7887

 // 这里是var变量, 不能是常量

        var array1 = [1, 2, 3, 4, 5]

        // 这样子就修改了第一个元素

        array1[0] = 9

        

        print(array1)

        

        print("------------>")

        // 删除最后一个

        array1.removeLast()

//        array1.removeAtIndex(1)

//        array1.removeAll()

        

        // 可以保持容量不变

        array1.removeAll(keepingCapacity: true)

        

        print(array1)

        print(array1.count)

        print("capacity==\(array1.capacity)")


2019-07-31 09:53:49 Mayxc 阅读数 589

在swift中 Array没有直接remove,使用一下方法:

 var arr = ["4","5","6"]
 let wrongArr = ["4","5"]
        
 arr = arr.filter { !wrongArr.contains($0) }
 print(arr)

 

2017-10-30 13:19:15 meng430 阅读数 2246

最近做项目的时候,有个循环操作删除数组的元素刚开始是这么写的。

for (index, item) in list.enumerate() {

    ……

// 如果里边有删除操作,会有bug,不信你测测。一直显示数组越界

}

for item in list {

    ……
// 如果里边要删除的话要改良
}


// 改良之后的写法,亲测没问题Bug,也符合swift的写法
        var array = ["1","2","3","4","5","6"]
        for item in array {
         if  let index = array.index(of: item)) {
                if item == "1" {
                    array.removeAtIndex(index)
                }
                if item == "5" {
                    array.removeAtIndex(index)
                }
            }
        }
        print(array)



2018-05-09 22:40:09 iosYangming 阅读数 11994

用swift应该都知道 删除某一个元素的时候提供的是 array.remove(at: <#T##Int#>)

并没有提供按照 指定元素删除的方法。

不是没有,是Array 支持更强到的值过滤能力。 Array.filter

filter方法支持 正则语句检索,功能很强大

具体可以Google。  >>  百度搜技术问题简直儿戏

言归正传假如删除 某一元素


let a = 1
let b = 2
let c = 3

var arr = [a,b,c,4]

let arr2 = arr.filter{$0 != a}

print(arr2)

filter方法是生成一个新的对象,数组本身没有变化封装一个简单的delete方法即可 对自身重指向

如果知道数组中没有没有重复的元素,可以遍历数组找到对应的index 然后删除

 if let index = array.index(of: "ojbk") { array = array.remove(at: index) } else { // not found }