मेरे पास एक सरणी है:

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

मुझे इस सरणी पर लूप के लिए प्रदर्शन करने की आवश्यकता है जहां प्रत्येक नंबर पर मुझे +90, और -90 . जोड़ने की आवश्यकता है

अब यहाँ मुद्दा:

लूप के लिए सामान्य में कोड इस तरह होगा:

for i in array {

let plus = i + 90
append.newArray(plus)
let minus = i - 90
append.newArray(plus)
}

मुझे प्लस और माइनस स्विच करने की आवश्यकता है .. पहले चक्र में मुझे न्यूएरे प्लस और माइनस में जोड़ना होगा ..... लेकिन दूसरे चक्र के लिए मुझे माइनस और प्लस क्रम में जोड़ना होगा।

प्लस और माइनस - माइनस प्लस के बीच वैकल्पिक करने के लिए लूप को स्विच करने का कोई तरीका है।

-2
Damiano Miazzi 18 जिंदा 2021, 15:04

2 जवाब

सबसे बढ़िया उत्तर

स्रोत सरणी में विषम और सम मानों के लिए, जैसा कि मैं समझता हूं, आपको इसका उपयोग करने की आवश्यकता है, ताकि आप इस तरह कुछ उपयोग कर सकें:

let array = [1, 2, 3, 4, 5]
var newArray: [Int] = []

func plusValue(_ value: Int) {
    let plus = value + 90
    newArray.append(plus)
}

func minusValue(_ value: Int) {
    let minus = value - 90
    newArray.append(minus)
}

for (value, index) in array.enumerated() {
    if index.isMultiple(of: 2) { // even
        minusValue(value)
        plusValue(value)
    } else { // odd
        plusValue(value)
        minusValue(value)
    }
}

बस यह समझने की जरूरत है कि आपको सम और विषम सूचकांकों के लिए क्या उपयोग करने की आवश्यकता है।

1
Denis Kozhukhov 18 जिंदा 2021, 15:12

इंडेक्स पर लूप के लिए इसे करने का एक तरीका यहां दिया गया है

let array = [1,2,3,4,5]
var output = [Int]()

for index in array.indices {
    let value = index % 2 == 0 ? 90 : -90
    output.append(array[index] + value)
    output.append(array[index] - value)
}

एक अन्य विकल्प reduce(into:) का उपयोग करना है

let output = array.enumerated().reduce(into: []) { 
    let factor = $1.offset % 2 == 0 ? 1 : -1
    $0.append(contentsOf: [$1.element + factor * 90, $1.element - factor * 90])
}
1
Joakim Danielson 18 जिंदा 2021, 15:58