2013-10-12 94 views
0

我正在尋找一種方法將兩個對象合併成一個函數或者會減少我的行數。結合兩個對象

var fsInfo1 = { 
    name: 'Joshua Velez', 
    address:{ 
     street: '94-1411 Kulewa Loop ', 
     city: 'Waipahu, ', 
     state: 'HI' 
    }, 
    gpa: [3.3,4.0,2.8] 

} 
var fsInfo2= { 
    name: 'John Doe', 
    address:{ 
     street: 'Some Street ', 
     city: 'Wahiawa, ', 
     state: 'HI' 
    }, 
    gpa: [3.4,3.6,3.1] 
} 

的console.log( 「名稱:」 + fsInfo1.name)

的console.log( 「地址:」 + fsInfo1.address [ '街'] + fsInfo1.address ['城市'] + fsInfo1.address ['state']) console.log(「GPA:」+ fsInfo1.gpa [0],fsInfo1.gpa [1],fsInfo1.gpa [2])

console.log (「Name:」+ fsInfo2.name)

console.log(「Address:」+ fsInfo2.address ['street'] + fsInfo2.address ['city'] +> fsInfo2.address [ '狀態']) 的console.log( 「GPA:」 + fsInfo2.gpa [0],fsInfo2.gpa [1],fsInfo2.gpa [2])

+1

數組將只保存您的fsInfo2 =字符串: VAR ARR = {[ 名: '約書亞貝萊斯', 地址:{ 街道:'94 -1411 Kulewa循環」, 城市: '維帕胡' , 狀態: 'HI' }, GPA:[3.3,4.0,2.8] },{ 名 : '李四', 地址:{ 街道: '有些街', 城市:' Wahiawa,', 狀態:'HI' }, gpa:[3.4,3.6,3.1] }] – mplungjan

+0

你試圖減少哪些linecount?您的對象仍將包含數據。你可以創建一個循環來通過它們,如果你把它們變成一個數組 –

+0

沒有特定的行數只是認爲它可以簡化的代碼很多 –

回答

1

一個方法是:

var fsInfo1 = // same as before 
var fsInfo2 = // same 
function logFsInfo(fsInfo) { 
    console.log("Name "+fsInfo.name); 
    console.log("Address "+fsInfo.address.street + fsInfo.address.city + fsInfo.address.state); 
    console.log("GPA "+fsInfo.gpa.join(",")); //combine gpa values into a string separated by commas 
} 
logFsInfo(fsInfo1); 
logFsInfo(fsInfo2); 

但它真的取決於你想在這裏做什麼。你只是在打印fsInfo數據嗎?如果是這樣,當然,只要做這樣的事情作爲打印出這些數據的快捷方式。但是如果你想用fsInfo對象開始做其他事情,我會建議創建一個類並附上方法。但是,這對於簡單的使用來說是完全過度的。

0
var fsInfo1 = { 
    name: 'Joshua Velez', 
    address:{ 
     street: '94-1411 Kulewa Loop ', 
     city: 'Waipahu, ', 
     state: 'HI' 
    }, 
    gpa: [3.3,4.0,2.8] 

} 
var fsInfo2= { 
    name: 'John Doe', 
    address:{ 
     street: 'Some Street ', 
     city: 'Wahiawa, ', 
     state: 'HI' 
    }, 
    gpa: [3.4,3.6,3.1] 
} 
var obj = new Object(); 

obj[0] = fsInfo1; 
obj[1] = fsInfo2; 
var count = Object.keys(myArray).length; 
for(i=0 ; i<count;i++) 
{ 
     console.log("Name: " + obj[i].name) 

console.log("Address: " + obj[i].address['street'] + obj[i].address['city'] + obj[i].address['state']) console.log("GPA: " + obj[i].gpa[0],obj[i].gpa[1],obj[i].gpa[2]) 
} 
+0

請解釋。 – Shea

+0

你想要解釋哪個部分? – vijaykumar