0
var request = {
    headers: {
        "CONTENT-TYPE": "application/json",
        "accept": "application/json"
    }
};

目的はプレーンオブジェクトを取得することですが、「正規化された」キーを使用します。アンダースコアと組み合わせるにはどうすればよいkeysですか?vals

var normalize = function(h) { return h.toUpperCase(); },
    keys = _.map(_.keys(request.headers), normalize),
    vals = _.values(request.headers);

// Now combine (no obvious looping) keys and vals to obtain
// {
//     headers: {
//         "CONTENT-TYPE": "application/json",
//         "ACCEPT": "application/json"
//     }
// }
4

1 に答える 1

3

_.each「明白な」ループ構造であると考えていますか?

var normalize = function(h) { return h.toUpperCase(); },
    normalizedHeaders = {};

_.each(request.headers, function(value, key) {
    normalizedHeaders[normalize(key)] = value;
});

必要に応じて、削減して行うこともできます。

var reducer = function(result, v, k) { result[normalize(k)] = v; return result; },
    normalizedHeaders = _.reduce(request.headers, reducer, {});

ただし、いずれにせよ、カバーの下にループが存在することになります。

于 2013-02-08T03:15:33.690 に答える