2016-03-07 31 views
2

我有一組元素(它是一個基本數組)。陣列的類型爲String在Swift 2中切割數組的元素

basicArray = [1710, 1725, 1740, 1755, 1810, 1825, 1840, 1855, 1925, 1955, 2020, 2050, 2120, 2150, 2220, 2250, 2320, 2350, 2430]

我需要創建兩個新的陣列,其中basicArray的每個元素都必須被切割成兩個部分,例如:

array1 = [17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 20, 20....] 
array2 = [10, 25, 40, 55, 10, 25, 40, 55, 25,55, 20, 50...] 

如何更好地做到這一點?感謝您的建議!

+0

你想如何「剪切」數組?基於什麼 ? –

+5

你沒有告訴我們你是怎麼做的,所以'更好'是什麼?如果你還沒有做到這一點,那麼你需要嘗試告訴我們出了什麼問題...... – Wain

+0

我知道,每個元素都有4個符號。我需要將數組中的每個元素分成兩部分,因此在新數組1中,我會嘗試使用2個第一個符號中的元素,並在數組2中嘗試使用2個第二個符號中的元素。 –

回答

9
let basic = ["1710", "1725", "1740", "1755", "1810", "1825", "1840", "1855", "1925", "1955", "2020", "2050", "2120", "2150", "2220", "2250", "2320", "2350", "2430"] 
let array1 = basic.map { String($0.characters.prefix(2)) } 
let array2 = basic.map { String($0.characters.suffix(2)) } 

print(array1) 
print(array2) 

輸出:

["17", "17", "17", "17", "18", "18", "18", "18", "19", "19", "20", "20", "21", "21", "22", "22", "23", "23", "24"] 
["10", "25", "40", "55", "10", "25", "40", "55", "25", "55", "20", "50", "20", "50", "20", "50", "20", "50", "30"] 

像這樣的事情?

+0

是的!謝謝! –

+0

@VadimNikolaev如果這個答案解決了你的問題,記得接受它! –

0

試試這個(提示是代碼中的註釋):

var basicArray = [1710, 1725, 1740, 1755, 1810, 1825, 1840, 1855, 1925, 1955, 2020, 2050, 2120, 2150, 2220, 2250, 2320, 2350, 2430] 
var firstTwoDigitsArray = [Int]() 
var lastTwoDigitsArray = [Int]() 

for element in basicArray { 

    // dividing by 100 shifts the numbers down by the first two digits 
    firstTwoDigitsArray.append(element/100) 

    // modulo 100 gets the last two digits 
    lastTwoDigitsArray.append(element%100) 

} 

print(firstTwoDigitsArray) // [17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24] 
print(lastTwoDigitsArray) // [10, 25, 40, 55, 10, 25, 40, 55, 25, 55, 20, 50, 20, 50, 20, 50, 20, 50, 30] 
-2

斯威夫特有一個內置的方法叫filter這基本上是遍歷所有元素,讓你封閉 - 顧名思義 - - 過濾基於謂詞的元素:

let array = [1,2,3,4,5,6] 

let array1 = array.filter { $0 % 2 == 0 } 
print(array1) // [2, 4, 6] 
let array2 = array.filter { $0 % 2 == 1 } 
print(array2) // [1,3,5] 

你想怎麼這些陣列是過濾您還沒有明確,所以很難明確給出,你可能會尋找答案...

相關問題