我有一个名为list_of_songs
的字符串数组。该数组有时可能是20,有时是1.这个数字是不可预测的。
我正在尝试,仅使用其中的4个-如果元素超过4个。如果没有,那就用剩下的。
我的代码:
let prefix = list_of_songs.prefix(upTo: 4)
var result = [String]()
for i in prefix {
result.append(i)
}
结果:
具有4个或更多元素。作品| 具有1个或2个元素:
致命错误:数组索引超出范围
答案 0 :(得分:3)
只需使用不带参数标签的prefix
:
let result = list_of_songs.prefix(4)
不同之处在于,对于prefix(upTo:)
,该参数必须在数组中指定有效索引,而对于prefix(:)
,则指定要检索的元素数-记录为
如果最大长度超过了集合中元素的数量,则结果将包含集合中的所有元素。
答案 1 :(得分:1)
您可以实现以下目标,
let result = Array(list_of_songs.prefix(4))
OR
var result = [String]()
for (index, song) in list_of_songs.enumerated() {
if index > 3 { break }
result.append(song)
}
print(result)
OR
您可以如下删除不需要的Array
元素,
if list_of_songs.count > 4 {
list_of_songs.removeSubrange(4...)
}
print(list_of_songs)