过滤函数中的对象文字

时间:2015-01-12 20:25:01

标签: javascript jquery bootstrap-typeahead

我的滤镜配置如下,我需要以恐怖的方式传递滤镜对象。

filter: function ( response ) {
    return $.map(response,function (object) {                   
        return {
            value: object.descricaoMunicipio,
            municipioId: object.municipioId,
            descricaoMunicipio: object.descricaoMunicipio,
            id: object.municipioId
        };
    });     
}

我需要以通用方式传递返回,如下所示:是否可能?

var fnc = {
    value: object.uf.descricaoUf,
    municipioId: object.municipioId,
    descricaoMunicipio: object.uf.descricaoUf,
    id: object.municipioId
}


filter: function ( response ) {
    return $.map(response,function (object) {
        return {
            eval(fnc)
        };
    });
}

1 个答案:

答案 0 :(得分:2)

您可以定义一个符合您需要的名称:

var fnc = function(object) {
    return {
        value: object.uf.descricaoUf,
        municipioId: object.municipioId,
        descricaoMunicipio: object.uf.descricaoUf,
        id: object.municipioId
    };
}

然后像这样使用它:

filter: function(response) {
    return $.map(response, function (object) {
        return fnc(object);
    });
}

或者你可以写:

filter: function(response) {
    return $.map(response, fnc);
}