使用其他对象的属性创建对象



给定这两个对象:

第一对象:

var firstObject = {
    title: 'value1',
    year: 'value2',
    contributors: 'value3',
    abstract: 'value4'
};

第二个对象:

var secondObject = {
    title: 'Title',
    year: 'Year',
    contributors: 'Contributors',
    abstract: 'Abstract'
};

如何创建这样结构的第三个对象?:

var thirdObject = {
    Title: 'value1'
    Year: 'value2',
    Contributors: 'value3',
    Abstract: 'value4'
};

基本上将secondObject的属性指定为thirdObject的键,将firstObject的属性分配为thirdObject的属性。

注意:我不想要firstObject键的任何大写字母。

您可以使用类似的东西:

var firstObject = {
    title: 'value1',
    year: 'value2',
    contributors: 'value3',
    abstract: 'value4'
};
var secondObject = {
    title: 'Title',
    year: 'Year',
    contributors: 'Contributors',
    abstract: 'Abstract'
};
var newObj = {};
$.each(secondObject, function(i){
    newObj[this] = firstObject[i];
});
//Vanilla JS version
for(var x in secondObject){
    newObj[secondObject[x]] = firstObject[x];
}
console.log(newObj);

http://jsfiddle.net/kq6tcp5L/

此处的示例。如果firstObject中不存在键,则此赋值为"。

  var firstObject = {
        title: 'value1',
        year: 'value2',
        contributors: 'value3',
        abstract: 'value4'
    };
    var secondObject = {
        title: 'Title',
        year: 'Year',
        contributors: 'Contributors',
        abstract: 'Abstract',
        extra:''
    };
    var thirdObject ={};
    for(var key in secondObject)
    {
        if (secondObject.hasOwnProperty(key))
        {
          thirdObject[key] = (typeof firstObject[key] === "undefined")?"":firstObject[key];
        }
    }
    console.log(thirdObject);