2014-08-28 91 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' 
}; 

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

注意:我不希望任何firstObject键的大写。

回答

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! – 2014-08-28 13:09:00

+0

感谢您的及时答复!很棒! – giokokos 2014-08-28 13:15:19

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); 
相关问题