2016-12-21 4 views
3

У меня есть два массива, и я хочу объединить или объединить, но сначала сравните, чтобы увидеть, существуют ли подобные значения, а затем заполнить пробелы 0, но должны сохранить первый порядок массива , как пример:Объединить или объединить два массива разных размеров и заполнить пробелы 0

Array1: 1 2 3 4 5 6 
Array2: 2 5 

NewArray: 0 2 0 0 5 0 

Я читал об объединении массивов, но не уверен, о том, как заменить недостающие строки с 0 и сохраняя тот же порядок первого массива ...

ответ

1

Предполагая, что вы хотите сохранить результат в " результат ".

версия Objective-C:

NSArray *arr1 = @[@1,@2,@3,@4,@5,@6]; 
NSArray *arr2 = @[@2,@5]; 

NSMutableArray *result = [NSMutableArray array]; 

for (NSNumber * item in arr1){ 
    [arr2 containsObject: item] ? [result addObject:item] : [result addObject:@0]; 
} 

Свифта версия:

let arr1 = [1,2,3,4,5,6] 
let arr2 = [2,5] 

let result = arr1.map { x -> Int in 
    return arr2.contains(x) ? x : 0 
} 
+0

Свифт версия имеет ошибку. 0: x в последней строке следует прочитать x: 0 – jvarela

+0

@jvarela да, простите, что x и 0 должны быть заменены местами. Отредактировал мой ответ. Спасибо за исправление –

+0

wow Работы, как я ожидал !!!! ... – jpatinop

 Смежные вопросы

  • Нет связанных вопросов^_^