2014-08-28 2 views
0

Учитывая эти два объекта:создать объект, используя свойства другого объекта

firstObject:

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

secondObject:

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

Как я могу создать третий объект структурированный, как это ?:

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

В основном присваивание свойствам второго объекта как ключей третьего объекта и свойств первого объекта как свойств третьего объекта.

Примечание: Я не хочу заглавных букв первых ключей объекта.

ответ

1

Вы можете использовать что-то вроде этого:

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/

+0

Да, забыл, спасибо за напоминание @RobG! –

+0

Спасибо за быстрый ответ! Прекрасно работает! – giokokos

0

Example here. Это назначить "", если в 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);