2016-12-18 8 views
1

Есть ли в Swift способ создания массива, применяя двоичную операцию для элементов двух других массивов?Создание массива в Swift путем применения двоичной операции ко всем элементам двух других массивов

Например:

let a = [1, 2, 3] 
let b = [4, 5, 6] 
let c = (0..<3).map{a[$0]+b[$0]} // c = [5, 7, 9] 
+1

«Почти» дубликат (тот же вопрос для m Умножение вместо добавления) http://stackoverflow.com/questions/39724115/swift-how-to-multiply-array-by-array-math-vector-by-vector. –

ответ

10

Если вы используете zip объединить элементы, Вы можете обратиться к + только с +:

let a = [1, 2, 3] 
let b = [4, 5, 6]  
let c = zip(a, b).map(+) // [5, 7, 9] 
+0

Функциональные и простые. +1 –

0

Update:

Вы можете использовать indices вот так:

for index in a.indices{ 
    sum.append(a[index] + b[index]) 
} 
print(sum)// [5, 7, 9] 

(Благодаря комментарий Александра это лучше, потому что мы не имеем дело с element сама, и мы просто иметь дело с index)

Старый ответ:

вы можете перечислить, чтобы получить индекс:

var sum = [Int]() 
for (index, _) in a.enumerated(){ 
    sum.append(a[index] + b[index]) 
} 
print(sum)// [5, 7, 9] 
+1

Нет смысла использовать 'перечисление ', если вас интересует только индекс или элемент, но не оба. В противном случае просто используйте 'a.indices' – Alexander