2013-10-12 4 views
0

Im ищет способ объединить два объекта в одну функцию или что-то, что уменьшит количество строк.Объединение двух объектов

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 ("Адрес:" + fsInfo2.address ['street'] + fsInfo2.address ['city'] +> fsInfo2.address [ 'состояние']) console.log ("ГПС:" + fsInfo2.gpa [0], fsInfo2.gpa [1], fsInfo2.gpa [2])

+1

Массив только сэкономит вам fsInfo2 = строка: вар обр = [{ имя: 'Joshua Велес', адрес: { Улица: '94 -1411 Kulewa Loop», город: 'Waipahu,' , состояние: 'HI' }, GPA: [3.3,4.0,2.8] }, { имя: 'Джон Доу', адрес: { Улица: 'Некоторые улицы', город: " Wahiawa, ', состояние:' HI ' }, gpa: [3.4,3.6,3.1] }] – mplungjan

+0

Какую линейку вы пытаетесь уменьшить? Ваши объекты по-прежнему будут содержать данные. Вы можете создать цикл, чтобы пройти через них, если вы сделаете их в массив –

+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

Смежные вопросы