私は小さな問題があります。Swift - 2つの数字の間の値を配列でフィルタリングする
私は、値の整数の配列を持っている:
let array = [99, 42, 34, 19, 167, 30, 49, 39, 75, 175, 270, 540]
は私が例えば19と167の間のすべての値を取得するにはどうすればよいですか?すべての整数値を反復するよりも良い方法がありますか? これは迅速です。私は迅速に答えを探しています。スウィフトは、事前
私は小さな問題があります。Swift - 2つの数字の間の値を配列でフィルタリングする
私は、値の整数の配列を持っている:
let array = [99, 42, 34, 19, 167, 30, 49, 39, 75, 175, 270, 540]
は私が例えば19と167の間のすべての値を取得するにはどうすればよいですか?すべての整数値を反復するよりも良い方法がありますか? これは迅速です。私は迅速に答えを探しています。スウィフトは、事前
で おかげで、あなたはまだあなたが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)
を行うことができます。
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]
let filtered = array.filter { (20..<167).contains($0) }
あります
コード内の関数(n)は何ですか –
パラメータとして「n」をとる関数r。この場合、 '.filter()'は各配列要素を実行し、それを 'n'の値として設定します。次に、関数は、「n」の値が「19より大きく167未満」の条件をパスするか否かをチェックする。渡されなかった場合、値は配列から削除されます。 – Erwin
@aryantak ** swift **の構文を編集した回答を参照してください – Erwin