Javascript 组合两个对象
我正在寻找一种方法,将两个对象组合成一个函数,或者其他可以减少行数的方法 console.log(“名称:”+fsInfo1.Name) console.log(“地址:+fsInfo1.Address['street']+fsInfo1.Address['city']+fsInfo1.Address['state'])) log(“GPA:+fsInfo1.GPA[0],fsInfo1.GPA[1],fsInfo1.GPA[2]) console.log(“名称:”+fsInfo2.Name) console.log(“地址:+fsInfo2.Address['street']+fsInfo2.Address['city']+>fsInfo2.Address['state'])) log(“GPA:+fsInfo2.GPA[0],fsInfo2.GPA[1],fsInfo2.GPA[2])Javascript 组合两个对象,javascript,Javascript,我正在寻找一种方法,将两个对象组合成一个函数,或者其他可以减少行数的方法 console.log(“名称:”+fsInfo1.Name) console.log(“地址:+fsInfo1.Address['street']+fsInfo1.Address['city']+fsInfo1.Address['state'])) log(“GPA:+fsInfo1.GPA[0],fsInfo1.GPA[1],fsInfo1.GPA[2]) console.log(“名称:”+fsInfo2.Name)
var fsInfo1={
姓名:“约书亚·韦雷斯”,
地址:{
街道:“94-1411 Kulewa环路”,
城市:“Waipahu,”,
声明:“嗨”
},
平均成绩:[3.3,4.0,2.8]
}
变量fsInfo2={
姓名:“约翰·多伊”,
地址:{
街道:“某条街”,
城市:“Wahiawa,”,
声明:“嗨”
},
平均成绩:[3.4,3.6,3.1]
}
var obj=新对象();
obj[0]=fsInfo1;
obj[1]=fsInfo2;
var count=Object.keys(myArray).length;
对于(i=0;i一种方法是:
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对象做其他事情,我建议创建一个类并附加方法。但是,对于一个简单使用。数组将只保存fsInfo2=string:var arr=[{名称:'Joshua Velez',地址:{街道:'94-1411 Kulewa Loop',城市:'Waipahu',州:'HI'},gpa:[3.3,4.0,2.8]},{名称:'John Doe',地址:{街道:'Some street',城市:'Wahiawa',州:'HI'},gpa:[3.4,3.6,3.1]}]您正试图减少哪一行数?您的对象仍将包含数据。如果将它们放入数组中,您可以创建一个循环来遍历它们。没有特定的行数。想想看,代码太多了,可以简化,也许更重要的是,您为什么要尝试减少行数?可能有一些合理的原因需要重新设置考虑此代码(例如,您可以定义一个函数来执行输出),但“更少的行”不应该是其中之一。是的,稍后我需要使用此函数addData添加另一个具有相同信息的人('John Doe'、'42 Walibi Way'、'Sydney'、'AU'、[3.4,3.0,3.7]),您希望在哪部分进行解释?
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])
}
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);