组合对象

Combine objects

本文关键字:对象 组合      更新时间:2024-05-15

我有两个对象,例如:

{ Count: 1,
  Items:
   [ { foo: [Object],
       name: [Object],
       bar: [Object],
       baz: [Object],
       qux: [Object] } ] }

{ Count: 0, Items: [] }

我需要将它们组合起来并返回一个JSON对象。然而,当我尝试这个时,我会得到

"[object Object][object Object]"

代码:

function returnResponse(obj1, obj2) {
            res.statusCode = 200;
            res.setHeader('Content-Type', 'text/plain; charset=UTF-8');
            var returnResult = obj1 + obj2
            res.send(JSON.stringify(returnResult, undefined, 2));
            res.end();
        }

如何使所有对象在浏览器中正确显示?

我认为您希望将两个对象都作为数组返回:

function returnResponse(obj1, obj2) {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain; charset=UTF-8');
    var returnResult = [obj1,obj2];
    res.send(JSON.stringify(returnResult, undefined, 2));
    res.end();
}

如果你不使用像jQuery这样的JS框架,你需要一个递归合并函数。以这个为例。

您可以使用jQuery库的$.extend方法。

阅读更多:http://api.jquery.com/jQuery.extend/

没有jQuery,只有一行:

for (var attrname in obj2) { obj1[attrname] = obj2[attrname]; }

此外,这是一个重复:如何动态合并两个JavaScript对象的属性?