0
我在myarray的這種模式:刪除陣列嵌套一個NSArray的(目標C)
myArray[0][0] = "28.04"
myArray[1][0] = "21.12"
myArray[2][0] = "12.33"
,我想有這樣的:
myArray[0] = "28.04"
myArray[1] = "21.12"
myArray[2] = "12.33"
我在myarray的這種模式:刪除陣列嵌套一個NSArray的(目標C)
myArray[0][0] = "28.04"
myArray[1][0] = "21.12"
myArray[2][0] = "12.33"
,我想有這樣的:
myArray[0] = "28.04"
myArray[1] = "21.12"
myArray[2] = "12.33"
您需要稱爲高階函數flatmap
- (NSArray *)flatMap:(id (^)(id obj))block {
NSMutableArray *mutableArray = [NSMutableArray new];
[self enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
id _obj = block(obj);
if ([_obj isKindOfClass:[NSArray class]]) {
NSArray *_array = [_obj flatMap:block];
[mutableArray addObjectsFromArray:_array];
return;
}
[mutableArray addObject:_obj];
}];
return mutableArray;
}
這是如何回答這個問題的?也許你應該展示如何使用你的'flatMap'方法來回答這個問題。你應該澄清這個方法是'NSArray'類別的一部分。 – rmaddy
平面圖是一種功能性編程的東西,這是一個普遍的想法。由於Objective-C沒有這個,你應該自己實現這個。但它在Swift,JavaScript,C#等現代語言中非常普遍。 –
參考這個網址:https://medium.com/@weijentu/higher-order-functions-in-objective-c-850f6c90de30 –