扩展对象。当房产可用时,有没有办法分配价值?

时间:2017-09-25 05:40:58

标签: javascript data-structures lodash

我有一个对象

        var general = {
            'primary_color': {'value': undefined},
            'logo': {'value': undefined},
        },

当我从服务器接收数据时,我会收到类似这样的内容

        var response = {
            'primary_color': {'value': '#DDD'},
            'logo': null,
        },

我想知道是否有任何一个衬里功能使用将我的结构转换为

        var result = {
            'primary_color': {'value': '#DDD'},
            'logo': {'value': undefined},
        },

1 个答案:

答案 0 :(得分:1)

您可以使用_.mergeWith()执行此操作,方法是使用_.isNil()定义当前值为nullundefined时应返回的值:



var general = { 'primary_color': {'value': undefined}, 'logo': {'value': undefined} };
var response = { 'primary_color': {'value': '#DDD'}, 'logo': null };

var result = _.mergeWith({}, general, response, function(objValue, srcValue) {
  if(_.isNil(objValue)) {
    return srcValue;
  }
  
  if(_.isNil(srcValue)) {
    return objValue;
  }
});

console.log(result);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
&#13;
&#13;
&#13;