1. ホーム
  2. iphone

NSArray マップに相当

2023-11-09 18:28:55

質問

与えられた NSArrayNSDictionary オブジェクト(類似のオブジェクトとキーを含む)の配列を、指定したキーの配列にマップするように書くことは可能でしょうか?例えば、Rubyの場合、以下のようになります。

array.map(&:name)

どのように解決するのですか?

更新しました。 Swiftを使用している場合、以下を参照してください。 地図 .


ブロックキット はオプションです。

NSArray *new = [stringArray bk_map:^id(NSString *obj) { 
    return [obj stringByAppendingString:@".png"]; 
}];


アンダースコア は別のオプションです。そこには map 関数があります。以下は、ウェブサイトからの例です。

NSArray *tweets = Underscore.array(results)
    // Let's make sure that we only operate on NSDictionaries, you never
    // know with these APIs ;-)
    .filter(Underscore.isDictionary)
    // Remove all tweets that are in English
    .reject(^BOOL (NSDictionary *tweet) {
        return [tweet[@"iso_language_code"] isEqualToString:@"en"];
    })
    // Create a simple string representation for every tweet
    .map(^NSString *(NSDictionary *tweet) {
        NSString *name = tweet[@"from_user_name"];
        NSString *text = tweet[@"text"];

        return [NSString stringWithFormat:@"%@: %@", name, text];
    })
    .unwrap;