2015-07-22 22 views
1

我有一个坐标数组(总共965)。我想在Google Roads API中使用这些坐标,但限制为100.如何删除所有数组项,除了在索引的倍数x - Swift

我有一个函数可以确定数组中有多少项,然后获取要使用的值。

round(Double(userCoordinatesHardCoded.count/100)) 

产生9

我想删除不在是的倍数指标所有项目,在这种情况下,9所以理论上我只会永远有不超过100个项目在数组中。

如果可能,我想保留第一个和最后一个数组项。

+1

你为什么不与第一指标的新数组,索引%9 == 0的每个索引和最后一个索引? –

回答

0

如果空间不是问题,您可以使用所需的倍数创建另一个数组。

var oldCoordinates // Imagine it having all those elements 
var newCoordinates : GoogleCoordinates = [] // This one will have new ones 

newCoordinates.append(oldCoordinates[0]) 
var x = 1 
for (x; x < oldCoordinates.count ; x++) { 
    if (x % 5 == 0) { 
     newCoordinates.append(oldCoordinates[x]) 
    } 
} 
if (x != (oldCoordinates.count - 1)) { 
    newCoordinates.append(oldCoordinates[oldCoordinates.count - 1]) 
} 
+0

这太好了。谢谢。 – puks1978

0

我知道这已经回答了,但是这是一个伟大的使用情况下使用filter功能内置到斯威夫特:

let newCoordinates = oldCoordinates.filter { coord in 
    return (coord % 9 != 0) 
}