2017-11-07 3 views
0

私は小さな問題があります。Swift - 2つの数字の間の値を配列でフィルタリングする

私は、値の整数の配列を持っている:

let array = [99, 42, 34, 19, 167, 30, 49, 39, 75, 175, 270, 540] 

は私が例えば19と167の間のすべての値を取得するにはどうすればよいですか?すべての整数値を反復するよりも良い方法がありますか? これは迅速です。私は迅速に答えを探しています。スウィフトは、事前

答えて

0

で おかげで、あなたはまだあなたがfilterと範囲をフィルタリングすることができ、パターンマッチング演算子~=を使用することができ、この使用してフィルタ

let array = [99, 42, 34, 19, 167, 30, 49, 39, 75, 175, 270, 540] 
let newArray = array.filter{$0 > 19 && $0 < 167} 
print(newArray) 
+0

コード内の関数(n)は何ですか –

+0

パラメータとして「n」をとる関数r。この場合、 '.filter()'は各配列要素を実行し、それを 'n'の値として設定します。次に、関数は、「n」の値が「19より大きく167未満」の条件をパスするか否かをチェックする。渡されなかった場合、値は配列から削除されます。 – Erwin

+0

@aryantak ** swift **の構文を編集した回答を参照してください – Erwin

1

を行うことができます。

let array = [99, 42, 34, 19, 167, 30, 49, 39, 75, 175, 270, 540] 
let range = 19...167 
let filteredArray = array.filter{ range ~= $0 } 

このオペレータは、結果は

// [99, 42, 34, 19, 167, 30, 49, 39, 75] 

はエッジが20...168又は20..<167書き込み排除することである19と167のエッジをフィルタリングしていないことを検討して、結果は

// [99, 42, 34, 30, 49, 39, 75] 
0
let filtered = array.filter { (20..<167).contains($0) } 
あります
関連する問題