将多个索引处的项目插入数组
insert item at multiple indices into an array
例如我有一个数组 arr = [1,2,3,4,5,6,7,8,9,10] 我想在位置 0、5、8 和9.
为了实现这一点,我尝试了
extension Array {
mutating func remove(_ newElement: Element, at indexes: [Int]) {
for index in indexes.sorted(by: >) {
insert(_ newElement: Element, at: index)
}
}
}
但随后出现错误:第 4 行中对成员 'insert(_:at:) 的引用不明确。有可能以这种方式做到这一点吗?
我用 Xcode 9.2
尝试这样的事情:
extension Array{
mutating func replaceElements(atPositions: [Int], withElement: Element){
for item in atPositions{
self.remove(at: item)
self.insert(withElement, at: item)
}
}
}
请注意,您不一定需要使用 self
关键字;它只是为了清楚起见。
尝试这样的事情:
extension Array {
mutating func add(_ newElement: Element, at indexes: [Int]) {
for index in indexes {
insert(newElement, at: index)
}
}
}
var array = [1,2,3,4,5,6,7,8,9,10]
array.add(12, at: [0,5,8,9])
print(array) // [12, 1, 2, 3, 4, 12, 5, 6, 12, 12, 7, 8, 9, 10]
您的插入函数当前未接收元素参数。您正在使用插入功能,而不是声明它。我还重命名了您的函数以进行使用说明。
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
extension Array {
mutating func add(_ newElement: Element, at indices: [Int]) {
for index in indices(by: >) {
insert(newElement, at: index)
}
}
}
arr.add(12, at: [0, 5, 8, 9])
print(arr)
例如我有一个数组 arr = [1,2,3,4,5,6,7,8,9,10] 我想在位置 0、5、8 和9.
为了实现这一点,我尝试了
extension Array {
mutating func remove(_ newElement: Element, at indexes: [Int]) {
for index in indexes.sorted(by: >) {
insert(_ newElement: Element, at: index)
}
}
}
但随后出现错误:第 4 行中对成员 'insert(_:at:) 的引用不明确。有可能以这种方式做到这一点吗? 我用 Xcode 9.2
尝试这样的事情:
extension Array{
mutating func replaceElements(atPositions: [Int], withElement: Element){
for item in atPositions{
self.remove(at: item)
self.insert(withElement, at: item)
}
}
}
请注意,您不一定需要使用 self
关键字;它只是为了清楚起见。
尝试这样的事情:
extension Array {
mutating func add(_ newElement: Element, at indexes: [Int]) {
for index in indexes {
insert(newElement, at: index)
}
}
}
var array = [1,2,3,4,5,6,7,8,9,10]
array.add(12, at: [0,5,8,9])
print(array) // [12, 1, 2, 3, 4, 12, 5, 6, 12, 12, 7, 8, 9, 10]
您的插入函数当前未接收元素参数。您正在使用插入功能,而不是声明它。我还重命名了您的函数以进行使用说明。
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
extension Array {
mutating func add(_ newElement: Element, at indices: [Int]) {
for index in indices(by: >) {
insert(newElement, at: index)
}
}
}
arr.add(12, at: [0, 5, 8, 9])
print(arr)