Removing object properties with Lodash

后端 未结 8 1496
旧巷少年郎
旧巷少年郎 2021-02-02 05:30

I have to remove unwanted object properties that do not match my model. How can I achieve it with Lodash?

My model is:

var model = {
   fname: null,
   lna         


        
8条回答
  •  青春惊慌失措
    2021-02-02 05:56

    This is my solution to deep remove empty properties with Lodash:

    const compactDeep = obj => {
        const emptyFields = [];
    
        function calculateEmpty(prefix, source) {
            _.each(source, (val, key) => {
               if (_.isObject(val) && !_.isEmpty(val)) {
                    calculateEmpty(`${prefix}${key}.`, val);
                } else if ((!_.isBoolean(val) && !_.isNumber(val) && !val) || (_.isObject(val) && _.isEmpty(val))) {
                    emptyFields.push(`${prefix}${key}`);
                }
            });
        }
    
        calculateEmpty('', obj);
    
        return _.omit(obj, emptyFields);
    };
    

提交回复
热议问题