Swift中如何向已有数组内添加JSON数组?
在Swift中向现有数组插入新JSON数组的方法
嗨,这事儿处理起来很简单,我给你捋清楚两种常见的实现方式,看你需求选就行:
1. 可变数组(用var声明)直接插入
如果你的现有数组是用var定义的可变数组,直接用Swift数组自带的insert(_:at:)方法就搞定了——把新数组作为单个元素插入到指定索引位置就行,因为你的现有数组本身就是二维数组(每个元素都是数组)。
举个例子,对应你给出的场景:
// 定义现有数组和新数组 var existingArray = [ ["a","b"],["c","e","f"],["d"],["z","x"] ] let newArray = ["s","g"] // 假设要插入到索引2的位置(也就是原数组中["d"]的前面) existingArray.insert(newArray, at: 2) // 执行后existingArray就变成: // [ ["a","b"],["c","e","f"],["s","g"],["d"],["z","x"] ]
注意:插入的索引不能越界哦!索引范围得是0到existingArray.count之间(包括count,插入到末尾),如果不确定索引是否合法,可以加个判断:
let targetIndex = 2 if targetIndex >= 0 && targetIndex <= existingArray.count { existingArray.insert(newArray, at: targetIndex) } else { print("⚠️ 索引超出数组范围啦,请检查!") }
2. 不可变数组(用let声明)创建新数组
如果你的现有数组是用let定义的不可变数组,那我们需要通过数组切片拼接的方式生成一个新数组:
// 不可变的现有数组 let existingArray = [ ["a","b"],["c","e","f"],["d"],["z","x"] ] let newArray = ["s","g"] let targetIndex = 2 // 拼接生成新数组 let updatedArray = existingArray[..<targetIndex] + [newArray] + existingArray[targetIndex...]
这样updatedArray就是插入新数组后的结果,原有的existingArray不会被修改。
内容的提问来源于stack exchange,提问作者Renee
相关产品推荐
相关产品推荐

