过滤器函数中的对象字面量

Object literal in filter function

我的过滤器是这样配置的,我需要以动态方式传递过滤器对象。

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

我需要以通用方式传递 return,比如 this:Is 可能吗?

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)
        };
    });
}

您可以定义一个名称来满足您的需求:

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);
}