合并包含JSON对象的对象的默认选项

时间:2017-03-30 05:26:36

标签: javascript jquery json

我需要合并这两个对象以使用JS获得以下输出。在此先感谢,如果需要,可以使用jquery库



var defaultOptions = {
        count:3
    };
    
    var JSON = {
      one:{
        title:"something",
        count:15
      },
      two:{
        title:"another"
      }
    }
    
    // expecting
    
    var JSON = {
      one:{
        title:"something",
        count:15
      },
      two:{
        title:"another",
        count:3
      }
    }




3 个答案:

答案 0 :(得分:1)

试试这个。

var defaultOptions = {
        count:3
    };
    
    var someObject = {
      one:{
        title:"something",
        count:15
      },
      two:{
        title:"another"
      }
    }
    
   for (var property in someObject) {
    if (someObject[property].count == undefined) {
       console.log(someObject[property]);
       someObject[property].count = defaultOptions.count;
       console.log(someObject[property]);
    }
}

答案 1 :(得分:0)

您可以使用for合并对象。

$.extend

更新:遍历对象并检查 for (var key in JSON) { if (!JSON[key]['count']){ $.extend(JSON[key], defaultOptions); } } 对象

答案 2 :(得分:0)

它是这样的:



function mergeObjs(){
  var a = [].slice.call(arguments), o = a.shift();
  for(var i=0,l=a.length; i<l; i++){
    for(var p in a[i]){
      o[p] = a[i][p];
    }
  }
  return o;
}
console.log(mergeObjs({neat:'totally'}, {cool:'works', someAry:[1,7,5,'test']}, {what:'now', really:7}));
&#13;
&#13;
&#13;