Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 组合两个对象_Javascript - Fatal编程技术网

Javascript 组合两个对象

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)

我正在寻找一种方法,将两个对象组合成一个函数,或者其他可以减少行数的方法

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])

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);